我想发送一个对象作为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