美文网首页Web开发三剑客....Web前端之路
如何使用ajax传输二进制数据

如何使用ajax传输二进制数据

作者: 铁甲万能狗 | 来源:发表于2019-07-12 06:44 被阅读44次

使用XMLHTTPRequest(ajax)在客户端和服务器之间传输数据已经流行了一段时间。 有时,我们希望浏览器从服务器(如ArrayBuffer或Blob)检索二进制数据,例如pdf,image和psd文件。 这篇文章将介绍如何使用XMLHTTPRequest和jQuery实现它

使用XMLHTTPRequest下载二进制文件

对于XMLHTTPRequest,只需将XHR实例的responseType设置为arraybuffer或blob即可。 例如

var xhr=new XMLHTTPRequest();
xhr.open("GET", url, true);
//设置response type
xhr.responseType = 'arraybuffer';
xhr.addEventListener('load',function(){
  if (xhr.status === 200){
    console.log(xhr.response) // ArrayBuffer
    console.log(new Blob([xhr.response])) // Blob
  }
})
xhr.send();

使用jQuery Ajax下载

$ .ajax不支持arraybuffer或blob作为其dataType。 因此我们需要编写一个beforeSend处理程序:

//ajax设置函数
$.ajaxSetup({
  beforeSend:function(jqXHR,settings){
    if (settings.dataType === 'binary'){
      settings.xhr().responseType='arraybuffer';
      settings.processData=false;
    }
  }
})

$.ajax({
  url:url,
  dataType:"binary",
  success:function(data){
    console.log(data); //ArrayBuffer
    console.log(new Blob([data])) // Blob
  }
})

有关responseType的更多信息,可以参考mdn文档
https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/responseType

相关文章

  • 如何使用ajax传输二进制数据

    使用XMLHTTPRequest(ajax)在客户端和服务器之间传输数据已经流行了一段时间。 有时,我们希望浏览器...

  • 前端开发收集 - 收藏集 - 掘金

    Ajax 与数据传输 - 前端 - 掘金背景 在没有ajax之前,前端与后台传数据都是靠表单传输,使用表单的方法传...

  • Ajax提交表单(form)数据并获取返回值(表单注册和登陆)

    ajax提交表单数据 1.首先禁用form表单submit使用button按钮实现ajax传输!!! 前端代码: ...

  • ajax请求接口参数

    如何使用ajax请求数据: // 请求接口数据$.ajax({ url: 'http://localhost/...

  • 通信的规则

    问题一:如何将不同表现形式的数据放到媒介中传输?将数据转换为二进制编码进行存储和传输。 问题二:如何确保数据被发送...

  • HTTP请求415错误 – 不支持的媒体类型(Unsupport

    HTTP请求415错误 – 不支持的媒体类型(Unsupported media type)使用AJAX传输数据发...

  • Ajax与数据传输

    背景 在没有ajax之前,前端与后台传数据都是靠表单传输,使用表单的方法传输数据有一个比较大的问题就是每次提交数据...

  • Python3 二进制数据base64编解码

    最近在搞阿里的物联网,其中使用到二进制数据透传,后台使用python,所以需要研究一下,二进制数据的传输问题。 P...

  • golang使用protobuf

    简介 和http中常用的json协议一样,protobuf也是用来传输数据的,但是它使用二进制格式,传输效率更高。...

  • Ajax

    ajax 是什么?有什么作用? AJAX 在浏览器与 Web 服务器之间使用异步数据传输(HTTP 请求)从服务器...

网友评论

    本文标题:如何使用ajax传输二进制数据

    本文链接:https://www.haomeiwen.com/subject/gfsskctx.html