Angularjs $http PUT中出现错误

Angularjs $http PUT中出现错误,angularjs,json,node.js,mongodb,Angularjs,Json,Node.js,Mongodb,我正在建立一个简单的拍卖网站。我在页面上展示了我的产品。现在我想提出一个新的提议。在我的控制器中,我使用ng对话框打开一个弹出表单,然后我将所需的拍卖传递到内部。像这样: $scope.clickToOpen4 = function (followingauction) { console.log(followingauction.allbids[followingauction.allbids.length -1].bid); var newScope = $sco

我正在建立一个简单的拍卖网站。我在页面上展示了我的产品。现在我想提出一个新的提议。在我的控制器中,我使用ng对话框打开一个弹出表单,然后我将所需的拍卖传递到内部。像这样:

     $scope.clickToOpen4 = function (followingauction) {

    console.log(followingauction.allbids[followingauction.allbids.length -1].bid);
    var newScope = $scope.$new();
    newScope.auction = followingauction;
    ngDialog.open({template: '../views/partials/offer.html',
        className: 'ngdialog-theme-default',
        scope: newScope
    });
};
$http.put('/api/followingauctions/newoffer/' + id, {newBid: newBid})
        .then(function () {
            // success
        });
在我的模板offer.html中,我有一个简单的表单:

      <form name="Offer"  ng-controller="FollowingAuctionsController">
Your Offer:<br>
<input type="number" placeholder="Your Offer" ng-model="newOffer" name="new offer" required> €<br>

<input class="btn" type="submit" ng-click="submitNewOffer(auction._id, auction.allbids[auction.allbids.length -1].bid)" value="OK"><br>
如您所见,我通过console.log查看传入模板的数据是否正常。他们是! 如果新出价低于我通过的最高出价,我会发出警告,否则我会提出新出价

一切正常,console.log也正常。但当我提交新ID(高于旧出价)时,它会向我发送以下错误:

js:12578放置400(错误请求)


angular.js:14516可能未经处理的拒绝:{“数据”:“意外令牌8400语法错误:意外令牌8\n解析时(/Users/m.pagano/WebstormProjects/Challenge_2/Project2/sampsite/node_modules/body parser/lib/types/json.js:83:15)\n位于/Users/m.pagano/WebstormProjects/Challenge\u 2/Project2/sampsite/node\u modules/body parser/lib/read.js:116:18\n位于invokeCallback(/Users/m.pagano/WebstormProjects/Challenge\u 2/Project2/sampsite/node\u modules/raw body/index.js:262:16)\n完成时(/Users/m.pagano/webstorprojects/Challenge\u 2/Project2/sampsite/node\u modules/raw body/index.js:251:7)\n位于IncomingMessage.oned(/Users/m.pagano/webstorprojects/Challenge\u 2/Project2/sampsite/node\u modules/raw body/index.js:307)\n位于IncomingMessage.emit(events.js:86:13)\n位于endreadable(_stream_readable.js:974:12)\n在_combinedTickCallback(internal/process/next_tick.js:74:11)\n在process._ticklback(internal/process/next_tick.js:98:9)”,“status”:400,“config”:{“method”:“PUT”,“transformRequest:[null],“transformResponse:[null],“jsonpCallbackParam:“callback”,“url”:“/api/followerauctions/newoffer/58dbd190b8042b080d1418bf”,“data”:800,“headers”:{“Accept”:“application/json,text/plain,/”,“Content Type”:“application/json;charset=utf-8”},“statusText”:“Bad Request”}

使用$http执行PUT请求时,必须指定
参数

$http.put('/api/followingauctions/newoffer/' + id, {}, params: {'newBid': newBid})
    .then(function () {
        alert('Offert Done!');
        getFollowingAuctions();
});

使用$http执行PUT请求时,必须指定
参数

$http.put('/api/followingauctions/newoffer/' + id, {}, params: {'newBid': newBid})
    .then(function () {
        alert('Offert Done!');
        getFollowingAuctions();
});

您使用的方法不正确

$http.put
方法的右签名是
put(url,data,[config]);

因此,您的代码可以如下所示:

     $scope.clickToOpen4 = function (followingauction) {

    console.log(followingauction.allbids[followingauction.allbids.length -1].bid);
    var newScope = $scope.$new();
    newScope.auction = followingauction;
    ngDialog.open({template: '../views/partials/offer.html',
        className: 'ngdialog-theme-default',
        scope: newScope
    });
};
$http.put('/api/followingauctions/newoffer/' + id, {newBid: newBid})
        .then(function () {
            // success
        });
您可以从后端的
POST
访问
newpid


在这种情况下,可以从后端的
GET
获取
newpid
,因为您使用的方法不正确

$http.put
方法的右签名是
put(url,data,[config]);

因此,您的代码可以如下所示:

     $scope.clickToOpen4 = function (followingauction) {

    console.log(followingauction.allbids[followingauction.allbids.length -1].bid);
    var newScope = $scope.$new();
    newScope.auction = followingauction;
    ngDialog.open({template: '../views/partials/offer.html',
        className: 'ngdialog-theme-default',
        scope: newScope
    });
};
$http.put('/api/followingauctions/newoffer/' + id, {newBid: newBid})
        .then(function () {
            // success
        });
您可以从后端的
POST
访问
newpid


在这种情况下,
newpid
可以从后端的
GET
获取

非常感谢!!非常感谢!!