AJAX 是一種與服務(wù)器交換數(shù)據(jù)的技術(shù),可以在補(bǔ)充在整個(gè)頁面的情況下更新網(wǎng)頁的一部分。
下面的表格列出了所有的 jQuery AJAX 方法:
jQuery Ajax在web應(yīng)用開發(fā)中很常用,它主要包括有ajax,get,post,load,getscript等等這幾種常用無刷新操作方法,接下來通過本文給大家介紹jquery ajax 上傳文件處理方式。
FormData對(duì)象
XMLHttpRequest Level 2添加了一個(gè)新的接口FormData.利用FormData對(duì)象,我們可以通過JavaScript用一些鍵值對(duì)來模擬一系列表單控件,我們還可以使用XMLHttpRequest的send()方法來異步的提交這個(gè)”表單”.比起普通的ajax,使用FormData的最大優(yōu)點(diǎn)就是我們可以異步上傳一個(gè)二進(jìn)制文件.
所有主流瀏覽器的較新版本都已經(jīng)支持這個(gè)對(duì)象了,比如Chrome 7+、Firefox 4+、IE 10+、Opera 12+、Safari 5+。之前都是用原生js的XMLHttpRequest寫的請求
XMLHttpRequest方式
xhr.open("POST", uri, true); xhr.onreadystatechange = function() { if (xhr.readyState == 4 && xhr.status == 200) { // Handle response. alert(xhr.responseText); // handle response. } }; fd.append('myFile', file); // Initiate a multipart/form-data upload xhr.send(fd);
其實(shí)jquery的ajax也可以支持到的,關(guān)鍵是設(shè)置:processData 和 contentType 。
ajax方式
var formData = new FormData(); var name = $("input").val(); formData.append("file",$("#upload")[0].files[0]); formData.append("name",name); $.ajax({ url : Url, type : 'POST', data : formData, // 告訴jQuery不要去處理發(fā)送的數(shù)據(jù) processData : false, // 告訴jQuery不要去設(shè)置Content-Type請求頭 contentType : false, beforeSend:function(){ console.log("正在進(jìn)行,請稍候"); }, success : function(responseStr) { if(responseStr.status===0){ console.log("成功"+responseStr); }else{ console.log("失敗"); } }, error : function(responseStr) { console.log("error"); } });