JavaScript如何获取二进制数据响应

AJAX的dataType类型是没有blob或者arraybuffer的,那如果我们访问一个API返回的是个图片或者文件之类的二进制内容,该怎么办呢?

有人开了个bug,并引发了一个长长的讨论,不过最终这个bug解成了CANTFIX,也就是说决定是AJAX不会去支持,但引发讨论的那哥们最终写了个插件

经过各种查询,总结下来有三种办法:

  1. 用那个插件
  2. XMLHttpRequest
  3. AJAX TRANSPORT

我最终选择了用XMLHttpRequest,因为其他两个会带来太多额外的代码。

时间: 2025-02-01 08:48:34

JavaScript如何获取二进制数据响应的相关文章

java从url里获取二进制数据

package zhucepeiyu15; import java.io.BufferedReader; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException

JavaScript处理二进制数据:TypedArrays

翻译自:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Typed_arrays 随 着Web应用的发展,越来越多地需要使用JavaScript来处理视频.音频,或者通过WebSocks获取原始数据.很显然,我们需要有一种方法能够 方便快捷地地用JavaScript处理原始二进制数据.过去,我们将原始数据作为字符串来对待,并使用charCodeAt()来从数据缓冲区中读取字 节.由于需要进行多次转换,这种方法低效而且容易出错,特别是

javascript跨域获取json数据

项目在开发过程中,用到了天气预报的功能,所以需要调用天气预报的api,一开始以为直接用ajax调用url就可以获取天气数据,结果涉及到了跨域的问题,这里做一个记录. 说到跨域,就得知道同源策略. 同源策略(Same origin policy),是由Netscape提出的一个著名的安全策略.现在所有支持JavaScript 的浏览器都会使用这个策略.所谓同源是指,域名,协议,端口相同.它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在

JavaScript二进制数据序列化和反序列化

最近业余时间在搞h5小游戏,由于同步协议过于频繁,和服务器之间的同步直接用json就显得太浪费了,于是我们商讨之下决定改用二进制.学习过程中并没有遇到一篇就解决问题的文章,遂再总结一发. 1.二进制数据的存储 ArrayBuffer对象.TypedArray对象.DataView对象是JavaScript操作二进制数据的一个接口. (1)ArrayBuffer对象:代表内存之中的一段二进制数据,它不能直接读写,只能通过视图(TypedArray视图和DataView视图)来读写,视图的作用是以指

安装redis-py并连接Redis服务器设置和获取redis的二进制数据

本文档简单介绍一下使用python版的Redis客户端redis-py来连接Redis并执行设置和获取redis的二进制数据. 说明: set,get,setnx,append等命令同样也可以用于设置二进制数据. 因为Redis的自带的客户端redis-cli不方便设置二进制数据,所以我们这里使用Python的客户端来进行 安装redis-py有三种方式: 1.   pip install redis 2.   easy_install redis 3.   从源码安装: python setu

ajax中获取和发送二进制数据的方法

来源:三联教程 | 时间:2013-06-08 17:51:48 用ajax从服务器端获取二进制时, 需要用overrideMimtType设置request头,让浏览器不要修改读取的的数据,方法如下: var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function(){ if (xhr.readyState=== 4 && xhr.status === 200){ var imgdata = xhr.response;

Flask04 后台获取请求数据、视图函数返回类型、前台接受响应数据

1 后台获取请求数据 1.1 提出问题 前台发送请求的方式有哪些 后台如何获取这些请求的参数 1.2 前台发送请求的方式 GET.POST.AJAX 点睛:如果不指定请求方式,浏览器默认使用GET请求 点睛:进入登录页面的请求和提交登录信息的请求使用的路径都是一样的,只不过前往登录页面的请求是GET请求,服务器返回的是一个静态的页面:当录入登录信息点击确定后就会向后台发送一个POST请求,后台经过逻辑处理后,如果登录信息正确就会返回一个静态主页面(注意:虽然这两个请求都是使用的一样的路径,但是我

iOS项目开发实战——获取网页源代码的二进制数据

我在上一篇博客<iOS项目开发实战--iOS网络编程获取网页Html源代码>中讲述了如何获取一个网页的HTML源代码,可以满足一定的需求.但是由于特殊原因,我们想获取的是一个网页的二进制数据,那么应该怎么办呢? 具体实现如下: (1)创建一个iOS项目,Language选择Swift,然后在ViewController.swift 中写入如下代码: override func viewDidLoad() { super.viewDidLoad() var data = NSData(conte

JavaScript中fetch获取后台数据

除了XMLHttpRequest对象来获取后台的数据之外,还可以使用一种更优的解决方案——fetch ㈠fetch示例 fetch获取后端数据的例子: // 通过fetch获取百度的错误提示页面 fetch('https://www.baidu.com/search/error.html') // 返回一个Promise对象 .then((res)=>{ return res.text() // res.text()是一个Promise对象 }) .then((res)=>{ console.