FormDataおよびjqAjaxパラメータ
3838 ワード
一.FormData(HTML 5オブジェクト、IE 10未満のIEブラウザではサポートする)は、フォームデータのキー値ペアを表す構造を提供する、そのデータをXMLHttpRequestとして使用することができる.send()メソッド送出
一般的な方法:1.FormData.append(key,value)/FormDataオブジェクトにキー値ペアを追加する.FormData.delete(key)//指定したkeyと対応するvalueを削除し、同じkeyが複数削除されます.FormData.get(key)//指定keyの値を取得し、複数であれば1番目(IE、Safariは全くサポートしていない)4を返す.FormData.getall(key)//指定keyのすべての値を取得し、配列に戻る(IE、Safariは全くサポートしていない).FormData.has(key)/指定したkeyが含まれているかどうかは、boolean値を返します(IE、Safariはまったくサポートしていません).FormData.set()/オブジェクトのキーに新しい値を設定し、キーが存在しない場合に追加します.(IE,Safariは全くサポートしていません)
例1(フォームを使用してFormDataオブジェクトを構築し、formラベルにenctype=「multipart/form-data」を追加する必要がある)
例2(フォームを使用しないFormDataオブジェクト)
二.jqueryのajaxリクエスト共通パラメータの詳細
一般的な方法:1.FormData.append(key,value)/FormDataオブジェクトにキー値ペアを追加する.FormData.delete(key)//指定したkeyと対応するvalueを削除し、同じkeyが複数削除されます.FormData.get(key)//指定keyの値を取得し、複数であれば1番目(IE、Safariは全くサポートしていない)4を返す.FormData.getall(key)//指定keyのすべての値を取得し、配列に戻る(IE、Safariは全くサポートしていない).FormData.has(key)/指定したkeyが含まれているかどうかは、boolean値を返します(IE、Safariはまったくサポートしていません).FormData.set()/オブジェクトのキーに新しい値を設定し、キーが存在しない場合に追加します.(IE,Safariは全くサポートしていません)
例1(フォームを使用してFormDataオブジェクトを構築し、formラベルにenctype=「multipart/form-data」を追加する必要がある)
var submit=document.querySelector("#submit");
submit.onclick=function(){
var myForm = document.getElementById('myForm');
var formData = new FormData(myForm); // FormData
console.log(formData) // , get getAll
var xhr=new XMLHttpRequest();
xhr.open("post",postUrl);
xhr.send(formData);
xhr.onload=function(){
if(xhr.status==200){
//...
}
}
}
例2(フォームを使用しないFormDataオブジェクト)
var formData = new FormData();
formData.append('file', $('#file')[0].files[0]);
$.ajax({
url: '/upload',
type: 'post',
cache: false,
data: formData,
processData: false,
contentType: false,
success:function(){
}
})
二.jqueryのajaxリクエスト共通パラメータの詳細
$.ajax({
url: 'xxx', //
type: 'post', // (post get), get
timeout: 2000, // ,
async: true, // , true
data: formData, //
dataType: 'json', // , xml,html,script,json,jsonp,text
cache: false, // , true
/*
* contentType
* "application/x-www-form-urlencoded", ( key value , & )
* "application/json", json , JSON.stringfy , JSON.parse
* false, Content-Type( form enctype="multipart/form-data", contentType multipart/form-data)
*/
contentType:false,
processData: false, // , true,( false, data FormData , FormData URL 。)
context:{some:'value'}, // AJAX "this" 。
username:'username', // HTTP
password:'password', // HTTP
global:true, // true, AJAX 。
ifModified:false, // false。 。 HTTP Last-Modified 。
/*
* traditional , , false,jquery 。
* true , request.getParameterValues()
*/
traditional:false,
beforeSend:function(xhr){ //
//
$("#submit").attr({ disabled: "disabled" });
},
success:function (data) { //
console.log(data);
console.log(this.some) // 'value'
},
error:function(xhr, status, err){ //
},
complete: function (xhr, status) { //
if (status == 'timeout') {
ajaxTimeOut.abort(); //
alert(' ')
}
}
});