$.ajax 與 $.post 的區別,以及$.post的bug

jsoncode發表於2017-06-15

先來看兩個方法:

$.ajax({
    url: url,
    data: params,
    type: `post`,
    dataType: `json`,
    success: function(d) {
    },
    error: function(e) {
    }
});
$.post(url, params, function(d) {
}, function(e) {
});

這都能看懂,沒有什麼問題
正常的使用,不會有什麼問題,
那什麼是不正常的使用呢?

上傳檔案


$.ajax({
    url: url,
    data: formdata,
    type: `post`,
    contentType: false,//必須false才會自動加上正確的Content-Type
    /**
     * 必須false才會避開jQuery對 formdata 的預設處理
     * XMLHttpRequest會對 formdata 進行正確的處理
     */
    processData: false,
    success: function(d) {
    },
    error: function(e) {
    }
});

請求地址有302重定向(同域下,沒有跨域)

這種情況下,$.post的回撥函式就沒有執行,$.ajax正常執行

jQuery版本:2.2

相關文章