Javascript Ajax删除请求&;调用Node/Express-after方法时的响应如何使用GET方法重定向?

Javascript Ajax删除请求&;调用Node/Express-after方法时的响应如何使用GET方法重定向?,javascript,ajax,node.js,express,Javascript,Ajax,Node.js,Express,我不熟悉AJAX和Node,不知道如何处理: 我有一个deleteAJAX调用,在从db中删除行之后,我想重定向回同一个路由,但是使用GET方法。我相信我也可以从前端脚本重定向页面,我不确定哪种策略是正确的。感谢您的帮助 前端js制作ajax调用script.js $('.deleteRepository').on('click', function(event) { event.stopImmediatePropagation(); var username = $

我不熟悉AJAX和Node,不知道如何处理: 我有一个deleteAJAX调用,在从db中删除行之后,我想重定向回同一个路由,但是使用GET方法。我相信我也可以从前端脚本重定向页面,我不确定哪种策略是正确的。感谢您的帮助

前端js制作ajax调用script.js

  $('.deleteRepository').on('click', function(event) {    
    event.stopImmediatePropagation();
    var username = $(this).attr('username');
    var repoName = $(this).attr('repoName');
    var oReq = new XMLHttpRequest();
    oReq.open("delete", "/user/"+username+'/'+repoName);
    oReq.send();
  });
router.route('/:username/:repository')
    .delete(function(req, res) {
      console.log('\n\nDelete method called\n\n');
      let username = req.params.username;
      let repoName = req.params.repository;

      deleteRepositoryFromUser(req, res)
        .then(function() {
          console.log('deleted, now redirect');
          //I want to redirect to this page using GET, but logs DELETE
          //I also want to redirect to /user/TonyStark/Favorites
          res.redirect(200, '/user/'+username+'/Favorites'); 
        })
myRoute.js

  $('.deleteRepository').on('click', function(event) {    
    event.stopImmediatePropagation();
    var username = $(this).attr('username');
    var repoName = $(this).attr('repoName');
    var oReq = new XMLHttpRequest();
    oReq.open("delete", "/user/"+username+'/'+repoName);
    oReq.send();
  });
router.route('/:username/:repository')
    .delete(function(req, res) {
      console.log('\n\nDelete method called\n\n');
      let username = req.params.username;
      let repoName = req.params.repository;

      deleteRepositoryFromUser(req, res)
        .then(function() {
          console.log('deleted, now redirect');
          //I want to redirect to this page using GET, but logs DELETE
          //I also want to redirect to /user/TonyStark/Favorites
          res.redirect(200, '/user/'+username+'/Favorites'); 
        })
控制台

GET /user/TonyStark/delMe 200 114.702 ms - 4075
...    

Delete method called


deleteRepositoryFromUser()
repoName: delMe
username: TonyStark
deleted, now redirect
DELETE /user/TonyStark/delMe 200 4.568 ms - 44 //how can I make GET?
//why is it not going to /user/TonyStark/Favorites?

这一行是错误的
res.redirect(200'/user/'+username+'/Favorites')。代码200不能重定向。您必须使用301或302重定向。在此处查看有关http代码的参考信息:

您还可以在重定向之前手动将http方法设置为GET
在myRoute.js中:

router.route('/:username/:repository')
.delete(function(req, res) {
  console.log('\n\nDelete method called\n\n');
  let username = req.params.username;
  let repoName = req.params.repository;

  deleteRepositoryFromUser(req, res)
    .then(function() {
      console.log('deleted, now redirect');

      //Explicitly set the HTTP method to GET
      req.method = "GET"

      res.redirect(200, '/user/'+username+'/Favorites'); 
    })

谢谢斯瓦贝尔。但是,当我尝试这样做时,它会在循环中不断递归地提交请求。