带有$ http.post的TypeError

时间:2016-02-28 17:28:52

标签: angularjs angular-http

我试图将数据发布到服务器但是当我运行我的代码时它会向我显示这样的错误......

TypeError:无法在字符串'{“email”:“unkonw@gmail.com”,“role”:“2”,“home”:“A0110”}'

上创建属性'method'

请帮我解决此错误,我的控制器程序是......

.py

我的HTML代码是......

var app = angular.module('mainApp', []);

app.controller('register', function ($scope, $http, transformRequestAsFormPost) {

    $scope.send = function register() {
        alert("test");
        $http.post("http://52.77.16.197:8000/subscribe/user",
                   transformRequest = transformRequestAsFormPost,
                   data = JSON.stringify( {email : $scope.email, role: $scope.role, home: $scope.home }))
            .success(function (response) {
                alert("hi");
                $scope.persons = data;
            }).error(function (response) {
                if (response.message == "already_subscribed") {
                    alert("already_subscribed");
                }
                else {
                    alert("error");
                }
            });
    }

});

2 个答案:

答案 0 :(得分:0)

你的功能写错了

$scope.register = function() 
{}

答案 1 :(得分:0)

您的$http来电参数不正确

$http.post("http://52.77.16.197:8000/subscribe/user", 
            transformRequest = transformRequestAsFormPost,
            data = JSON.stringify( {email : $scope.email,
                                    role: $scope.role,
                                    home: $scope.home
                                  }
                                 )
          )

来自文档:

  

post(url,data,[config]); 1

     

执行POST请求的快捷方式。

     

参数

     
      
  • url string指定请求目的地的相对或绝对URL

  •   
  • 数据*请求内容

  •   
  • config(可选)可选配置对象

  •   

数据应该是第二个参数并配置第三个参数。

错误消息:

  

TypeError:无法创建属性'方法' on string' {" email":" unkonw@gmail.com"," role":" 2",&#34 ;家用":" A0110"}'

$http服务并不像第三个参数。

代码显示了许多其他问题,这里很难回答。