Angularjs http post request - params没有到达服务器

时间:2017-11-01 12:24:37

标签: angularjs

我正在尝试使用angularjs创建帖子请求。这是我向供应商添加供应商的代码。

SupplierService.addNewSupplier = function(supplier)  {
    alert (supplier.name);
    alert (supplier.mobile);
    var Indata = {'name': supplier.name, 'mobile': supplier.mobile};
    //var Indata = {'product': $scope.product, 'product2': $scope.product2 };
    var req = {
        url: SupplierURL,
        method: 'POST',
        params: Indata,
        headers: {'Content-Type': 'application/json'}
    };

    //$http.post(SupplierURL, Indata)
    $http(req)
        .then(function(success){
            console.log(success);
            //SupplierList.push({id: data, name: supplier.name, mobile: supplier.mobile});
            supplier.name = "";
            supplier.mobile = "";
        },function (error){
            console.log(error);

            alert ('Supplier add error.');
        });

};

发出请求后,回调即将出现在错误部分,在控制台日志中我可以看到。

{error:true,message:“无法创建供应商。请重试”,name:null,mobile:null}

为什么名称和移动设备无法访问服务器。相同的请求适用于postman(api测试工具)。所以我不知道服务器端代码中可能存在anu问题。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

从$ http文档中,您可以清楚地看到请求参数:

https://docs.angularjs.org/api/ng/service/$http

var req = {
 method: 'POST',
 url: 'http://example.com',
 headers: {
   'Content-Type': undefined
 },
 data: { test: 'test' }
}

$http(req).then(function(){...}, function(){...});

因此,在您的情况下,您需要使用params切换data

 var req = {
        url: SupplierURL,
        method: 'POST',
        data: Indata,
        headers: {'Content-Type': 'application/json'}
    };