2

我正在使用构建一个应用程序,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 发送。

4

2 回答 2

0

我认为问题在于您正在使用POSThttp://localhost/login.json不是任何能够接收POST带有表单数据的请求的脚本。

于 2013-09-03T12:32:18.183 回答
0

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

于 2013-09-03T09:25:16.440 回答