html5 - ajax请求并处理二进制流(图片)
PHPz
PHPz 2017-04-17 11:09:34
[HTML讨论组]

有这么一种情况,不能直接用src+url来获得图片。因为src是通过get请求来获得图片的,但是由于业务需要服务端需要post来处理(请求参数可能很长),但是服务端返回的数据是二进制数据,而且没办法控制服务端返回BASE64编码。现在需要一种方案,来处理请求后的数据。

附:谷歌二维码生成接口
API: https://chart.googleapis.com/chart
接口描述:

PHPz
PHPz

学习是最好的投资!

全部回复(2)
迷茫

由于某些你懂的原因,不使用VPN我这边用不了google的相关服务。把相关逻辑放到一个能够连到google的服务的后端环境更好。这里仅仅做解决方案的展示。

方案1:Blob

兼容到IE10+。

http://jsfiddle.net/humphry/wYSuM/8/

方案2:BASE64 Data URI Scheme & FileReader API

兼容到IE10+。

这里仅仅是一个过渡方案,方案1最简洁。

http://jsfiddle.net/humphry/k9Kgv/3/

方案3:BASE64 Data URI Scheme

唔,如果要自己填这些编码、二进制读写细节的话,坑比较多,详情可以看看:

  • Stackoverflow:How can you encode a string to Base64 in JavaScript?
  • Javascript Hacks: Using XHR to load binary data

quots:

  • @NatureFeng
  • 张鑫旭的《理解DOMString、Document、FormData、Blob、File、ArrayBuffer数据类型》
天蓬老师

我的马甲

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号