鍍金池/ 問(wèn)答/Java  PHP  HTML/ ajax請(qǐng)求方式的問(wèn)題?。?!

ajax請(qǐng)求方式的問(wèn)題?。?!

最近做需求遇到一個(gè)高級(jí)查詢的插件,這個(gè)插件發(fā)布如下圖的請(qǐng)求。后臺(tái)是通過(guò)讀取IO流的方式獲取到請(qǐng)求的json數(shù)據(jù)。現(xiàn)在我要改這個(gè)插件的請(qǐng)求邏輯,結(jié)果自己模擬ajax請(qǐng)求,卻實(shí)現(xiàn)不了這個(gè)插件自帶請(qǐng)求的方式。導(dǎo)致后臺(tái)解析不到數(shù)據(jù)。前提是:后臺(tái)改動(dòng)涉及邏輯復(fù)雜,無(wú)法更改后臺(tái)解析方式。希望有高人指點(diǎn)一下!??!
插件請(qǐng)求抓包截圖:
clipboard.png
自己寫(xiě)js請(qǐng)求抓包截圖:

 $.ajax({
                url: url,
                type: 'POST',
                contentType: 'application/json; charset=utf-8', // 很重要
                traditional: true,
                data: {"name":"aaa","subs":[{"name":"bbb","age":"12"},{"name":"ccc","age":"20"}]}
            })
            .done(function() {
                console.log("success");
            })
            .fail(function() {
                console.log("error");
            })
            .always(function() {
                console.log("complete");
            });
            

clipboard.png

回答
編輯回答
凹凸曼

data
類(lèi)型:String
發(fā)送到服務(wù)器的數(shù)據(jù)。將自動(dòng)轉(zhuǎn)換為請(qǐng)求字符串格式。GET 請(qǐng)求中將附加在 URL 后。查看 processData 選項(xiàng)說(shuō)明以禁止此自動(dòng)轉(zhuǎn)換。必須為 Key/Value 格式。如果為數(shù)組,jQuery 將自動(dòng)為不同值對(duì)應(yīng)同一個(gè)名稱(chēng)。如 {foo:["bar1", "bar2"]} 轉(zhuǎn)換為 '&foo=bar1&foo=bar2'。

processData
類(lèi)型:Boolean
默認(rèn)值: true。默認(rèn)情況下,通過(guò)data選項(xiàng)傳遞進(jìn)來(lái)的數(shù)據(jù),如果是一個(gè)對(duì)象(技術(shù)上講只要不是字符串),都會(huì)處理轉(zhuǎn)化成一個(gè)查詢字符串,以配合默認(rèn)內(nèi)容類(lèi)型 "application/x-www-form-urlencoded"。如果要發(fā)送 DOM 樹(shù)信息或其它不希望轉(zhuǎn)換的信息,請(qǐng)?jiān)O(shè)置為 false。

加上 processData: false 試試

2018年3月12日 10:33
編輯回答
不歸路

是不是要轉(zhuǎn)成JSON串

 $.ajax({
    url: url,
    type: 'POST',
    contentType: 'application/json; charset=utf-8', // 很重要
    traditional: true,
    data: JSON.stringify({"name":"aaa","subs":[{"name":"bbb","age":"12"},{"name":"ccc","age":"20"}]})  // 轉(zhuǎn)JSON串
})
.done(function() {
    console.log("success");
})
.fail(function() {
    console.log("error");
})
.always(function() {
    console.log("complete");
});
2017年2月6日 13:36