我正在使用AngularJS
构建一个应用程序,我有一个登录表单,我想从中发送JSON
数据作为请求正文。
在我的控制器中;
$scope.credentials = {userid: $scope.userid, password: $scope.password};
$scope.login = function () {
$http({
method : 'POST',
url : 'http://localhost/login.json',
data : $scope.credentials,
headers: {'Content-Type': 'application/json'}
}).success(function (data) {
// code
}).error(function (data, status, headers, config) {
$scope.status = status + ' ' + headers;
console.log($scope.status);
});
};
但是当我提交表单时POST请求没有执行,我在控制台中收到一条消息,如;
0 function (name) {
"use strict";
if (!headersObj) headersObj = parseHeaders(headers);
if (name) {
return headersObj[lowercase(name)] || null;
}
return headersObj;
}
我在这里做错了什么?
如果我改变了行
headers: {'Content-Type': 'application/json'}
到
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
POST请求正在发出。但我不想将其作为表单值发送,而是希望将请求作为JSON发送。
答案 0 :(得分:0)
您应该将javascript对象编码为相应的mime类型数据,以便发布数据。如果您使用的是jQuery,请尝试使用$.param($scope.credentials)
而不是$scope.credentials
。
答案 1 :(得分:0)
我认为问题在于您POST
http://localhost/login.json
POST
这不是任何能够通过表单数据接收{{1}}请求的脚本。