holdtom
2019-07-25 19:18:01
AngularJS - $ http.post發(fā)送請(qǐng)求參數(shù)而不是JSON的任何方式?我有一些舊的代碼通過(guò)jQuery的post方法發(fā)出一個(gè)AJAX POST請(qǐng)求,看起來(lái)像這樣:$.post("/foo/bar", requestData,
function(responseData)
{
//do stuff with response
}requestData 只是一個(gè)具有一些基本字符串屬性的javascript對(duì)象。我正在將我們的東西移動(dòng)到使用Angular,我想用$ http.post替換這個(gè)調(diào)用。我想出了以下內(nèi)容:$http.post("/foo/bar", requestData).success(
function(responseData) {
//do stuff with response
}});當(dāng)我這樣做時(shí),我收到了來(lái)自服務(wù)器的500錯(cuò)誤響應(yīng)。使用Firebug,我發(fā)現(xiàn)這樣就發(fā)送了請(qǐng)求體:{"param1":"value1","param2":"value2","param3":"value3"}成功的jQuery $.post發(fā)送身體像這樣:param1=value1¶m2=value2¶m3=value3我遇到的端點(diǎn)是期望請(qǐng)求參數(shù)而不是JSON。所以,我的問(wèn)題是,無(wú)論如何要告訴$http.post發(fā)送javascript對(duì)象作為請(qǐng)求參數(shù)而不是JSON?是的,我知道我可以自己從對(duì)象構(gòu)造字符串,但我想知道Angular是否提供了開(kāi)箱即用的東西。
3 回答

開(kāi)心每一天1111
TA貢獻(xiàn)1836條經(jīng)驗(yàn) 獲得超13個(gè)贊
來(lái)自AngularJS文檔:
params - {Object。} - 在url之后將轉(zhuǎn)向的字符串或?qū)ο蟮挠成??key1 = value1&key2 = value2。如果該值不是字符串,則它將是JSONified。
因此,提供字符串作為參數(shù)。如果您不想這樣,那么使用轉(zhuǎn)換。再次,從文檔:
要在本地覆蓋這些轉(zhuǎn)換,請(qǐng)將轉(zhuǎn)換函數(shù)指定為config對(duì)象的transformRequest和/或transformResponse屬性。要全局覆蓋默認(rèn)轉(zhuǎn)換,請(qǐng)覆蓋$ httpProvider的$ httpProvider.defaults.transformRequest和$ httpProvider.defaults.transformResponse屬性。
有關(guān)詳細(xì)信息,請(qǐng)參閱文檔。
添加回答
舉報(bào)
0/150
提交
取消