0. serialize() serializeArray()
// jQuery為了我們能夠簡便的操作表單,設置了兩個方法用於對表單數據進行處理
// 1 serialize()
// - 可以將一個表單的數據轉換為urlencoded形式的數據
// - 還可以直接作為$.ajax的參數使用
// 2 serializeArray()
// - 可以將一個表單的數據轉換為數組形式
// - 也可以直接作為$.ajax的參數使用
// 小結:
// - 如果僅僅需要進行表單的數據處理,直接使用serialize()即可 (常用)
// - 如果要查看數據內容,可以使用serializeArray()
// - 以前我們說表單提交不好用只是說提交后會跳轉導致頁面刷新,用戶體驗不好,請求次數過多
// - 但是表單自身的功能還是無可取代的,該用還要用
注意:通過$.ajax發送FormData請求時,需要指定兩個屬性,不設置會導致報錯
contentType:false; //不指定請求體內容類型
processData: false; //不進行數據處理操作
FormData的參數需要一個DOM對象,需要轉換后使用
1.
<body>
<form id="form">
<input type="text" name="username">
<input type="file" name="file">
<input type="button" value="按鈕" id="btn">
</form>
</body>
<script>
$('#btn').on('click', function(){
var fd = new FormData($('form')[0])
$.ajax({
method: 'post',
url: '',
data: fd,
contentType: false,
processData: false,
success: function(res){
console.log('res')
}
});
})
2.
jsonp和ajax沒有任何關聯,jQuery為了我們請求操作時的統一,將jsonp的發送方式設置在了$.ajax中
$('#btn').on('click', function () {
$.ajax({
method : 'POST'
url : 'http://localhost/Ajax_day4/demo1.php',
success : function (datas) {
console.log(datas);
},
// 如果在dataType中設置'jsonp',表示當前請求以jsonp形式發送,與dataType的原始功能無關
dataType : 'jsonp'
});
}
3. ajax設置請求頭
$.ajax({
type: type,
headers: {
'token':'token_value'
},
url: url,
data: data,
success: function(data) {
},
error: function(err) {
},
complete: function(XMLHttpRequest, status) { //請求完成后最終執行參數
}
});
