我想發送一個對象作爲JSON到我的Web服務中的Flask,期望請求數據中的JSON。AngularJS POST請求不發送JSON數據
我已通過發送JSON數據手動測試了該服務,它工作正常。但是,當我嘗試通過角度控制器發出http POST請求時,Web服務器向我發送一條消息,表明它沒有收到JSON。
當我檢查在Chrome請求頭,似乎數據不被使用JSON但常規鍵/值對發送,甚至通過內容類型設置爲應用程序/ JSON
Request Method:POST
Status Code:200 OK
Request Headersview source
Accept:application/json, text/plain, */*
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Connection:keep-alive
Content-Length:49
Content-Type:application/json;charset=UTF-8
DNT:1
Host:localhost:5000
Origin:http://localhost:5000
Referer:http://localhost:5000/
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.116 Safari/537.36
X-Requested-With:XMLHttpRequest
Request Payload
application=AirFare&d1=10-APR-2013&d2=14-APR-2013
如果你看過請求有效負載下面的最後一行,可以看到數據不是JSON格式。
這是我的角度控制器的HTTP POST電話:
$http({
url: '/user_to_itsr',
method: "POST",
data: {application:app, from:d1, to:d2},
headers: {'Content-Type': 'application/json'}
}).success(function (data, status, headers, config) {
$scope.users = data.users; // assign $scope.persons here as promise is resolved here
}).error(function (data, status, headers, config) {
$scope.status = status + ' ' + headers;
});
};
我發送數據爲對象{},但我已經試過然而,通過JSON.stringify序列化後發送,沒有我辦似乎將JSON發送到服務器。
真的很感謝有人能幫忙。
$ http默認情況下,POST將其數據發送爲JSON編碼。嘗試從你的$ http調用中去掉'''headers'''。您可能會覆蓋默認標題,並導致服務器上出現意外的結果。您也可以發佈您的請求標題進行仔細檢查。 – Narretz
@smartexpert你找到解決方案嗎?我有同樣的問題,我嘗試了很多找到解決方案,但我不能,如果你找到解決方案PLZ幫助我。非常感謝 – pejman