繁体   English   中英

节点服务器-res.redirect正在使用“ PUT”方法。 需要“ GET”

[英]Node Server - res.redirect is using 'PUT' method. Need 'GET'

使用MEAN堆栈。

我创建了一个mongoose调用来更新mongodb集合中的文档。 那是可行的,没问题。 但是,更新完成后,我想通过服务器控制器“简单”重定向到我的“ /搜索”页面。

重定向适用于我的另一个猫鼬保存调用,这是一个简单的“ POST”。

但是,当我在“ PUT”之后调用重定向时,重定向使用的是PUT而不是GET,结果是404,找不到方法PUT / search。 没错!但是,我不确定为什么选择“ PUT”方法。 我可以强制执行“ GET”吗?

Chrome控制台日志:

PUT http://localhost:3000/search 404 (Not Found)
angular.js:9827 (anonymous function)angular.js:9628 sendReqangular.js:9344 serverRequestangular.js:13189 
processQueueangular.js:13205 
(anonymous function)angular.js:14401 
Scope.$evalangular.js:14217 Scope.$digestangular.js:14506
Scope.$applyangular.js:21440 (anonymous function)angular.js:3014 eventHandler

我的快递路线使用护照,因此所有需要身份验证的页面都通过我的index.js。 (请参见要点)。 我的猫鼬呼叫全部通过/ api / ...路由从我的视图或控制器直接转到服务器。

希望这是一个快速修复。

我的代码要点。 https://gist.github.com/astemborskim/419d49f0f773fa623a90

客户端控制器-调用服务器以执行更新(有效)

    $scope.updateProduct = function() {
    //$scope.edited.inv = $scope.edited.searchSKU;
    $scope.edited.inv.SKU = $scope.edited.SKU;
    $scope.edited.inv.Product_Name = $scope.edited.Name;
    $scope.edited.inv.Product_Description = $scope.edited.Desc;
    $scope.edited.inv.Quantity = $scope.edited.quantity;
    $scope.edited.inv.Product_Location = $scope.edited.locations;
    //console.log('Edited: ' + JSON.stringify($scope.edited.inv));
    //console.log('Not Edited: ' + JSON.stringify($scope.prod.currentProd));
    var inventory = new Inventory($scope.edited.inv);
    //console.log('edited.inv._id: ' + $scope.edited.inv._id);
    inventory.$update({id : $scope.edited.inv._id}, inventory, function (err, results){
        if(err){};
        console.log(results);
    });
}

服务器控制器-无法重定向:

    module.exports.editInventory = function(req, res){
Product.update({_id : req.body._id}, req.body, function (err, results){
    if(err){
        req.flash('message', 'Error Updating Product');
        console.log('Error Updating Product: ' + err);
        throw err;
    }
    req.flash('message','Product Updated Successfully!');
    res.redirect('/search');
});

};

让我知道您是否需要其他信息。

尝试重新发送res.send(200); 在服务器控制器和location.reload(); 在客户端的控制器回调中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM