$ http.post无法使用JSON数据

时间:2013-09-03 09:04:55

标签: http post angularjs

我正在使用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发送。

2 个答案:

答案 0 :(得分:0)

您应该将javascript对象编码为相应的mime类型数据,以便发布数据。如果您使用的是jQuery,请尝试使用$.param($scope.credentials)而不是$scope.credentials

答案 1 :(得分:0)

我认为问题在于您POST http://localhost/login.json POST这不是任何能够通过表单数据接收{{1}}请求的脚本。