美文网首页
关于ajax2的简介和入门

关于ajax2的简介和入门

作者: 种谔 | 来源:发表于2016-05-06 11:19 被阅读0次

    由于老版本的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 对象的使用

    相关文章

      网友评论

          本文标题:关于ajax2的简介和入门

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