关于ajax2的简介和入门

由于老版本的ajax存在以下问题,从而导致了ajax2的出现

  • 只支持文本数据的传送,无法用来读取和上传二进制文件。
  • 传送和接收数据时,没有进度信息,只能提示有没有完成。
  • 受到"同域限制"(Same Origin Policy),只能向同一域名的服务器请求数据。

ajax2的新特性有以下几个

  • 可以设置HTTP请求的时限。
  • 可以使用FormData对象管理表单数据。
  • 可以上传文件。
  • 可以请求不同域名下的数据(跨域请求)。
  • 可以获取服务器端的二进制数据。
  • 可以获得数据传输的进度信息。

下面是利用H5的FromData,ajax异步传输文件和表单的代码示例

var oMyForm = new FormData();

oMyForm.append("username", "Groucho");
oMyForm.append("accountnum", 123456); 
// 数字123456被立即转换成字符串"123456"

 
// fileInputElement中已经包含了用户所选择的文件
oMyForm.append("userfile", fileInputElement.files[0]); 

var oFileBody = "<a id="a"><b id="b">hey!</b></a>"; 
// Blob对象包含的文件内容

var oBlob = new Blob([oFileBody], { type: "text/xml"});
 
oMyForm.append("webmasterfile", oBlob);
 
var oReq = new XMLHttpRequest();

oReq.open("POST", "[http://foo.com/submitform.php](http://foo.com/submitform.php)");

oReq.send(oMyForm);

新版本的ajax还增加了progress事件,还有其他与之相关的五个事件,可以查看进度信息,请求时限

progress事件:正在传输事件。
load事件:传输成功完成。
abort事件:传输被用户取消。
error事件:传输中出现错误。
loadstart事件:传输开始。
loadEnd事件:传输结束,但是不知道成功还是失败。

注意:下载的progress事件属于XMLHttpRequest对象,上传的progress事件属于XMLHttpRequest.upload对象。

关于ajax的JQ用法和其他详细用法见附录。

附录:
XMLHttpRequest Level 2 使用指南
通过jQuery Ajax使用FormData对象上传文件
Web 前沿——HTML5 Form Data 对象的使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容