我正在尝试将一个对象以JSON格式发送到我的Flask webservice上,该webservice预期在请求数据中收到JSON。
我已经通过发送JSON数据手动测试了该服务,并且它可以正常运行。然而,当我尝试通过angular控制器发起http POST请求时,web服务器会发送一条消息,称其未收到JSON。
当我在Chrome中检查请求头时,似乎数据并没有以JSON格式发送,而是以常规的键/值对形式发送,即使内容类型设置为application/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格式呈现。这是我Angular控制器中的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 发送到服务器。非常感谢有人能帮忙。