javascript - Node/Express 中的 Ajax 删除请求和响应 - 在调用方法后如何使用 GET 方法重定向?

标签 javascript ajax node.js express

我是 AJAX 和 Node 的新手,不确定如何处理: 我有一个 DELETE ajax 调用,在从数据库中删除行后我想重定向回相同的路由,但使用 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();
  });

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');
          //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 代码的引用:https://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

关于javascript - Node/Express 中的 Ajax 删除请求和响应 - 在调用方法后如何使用 GET 方法重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39926041/

相关文章:

node.js - mongoose:缩短存储 node.js 模型的属性名称

javascript - 如何显示页面加载html文件直到页面加载完成?

javascript - 如何立即关闭 chrome 应用程序?

javascript - 在 php 中启用内容安全时如何执行从 JQuery Ajax 请求检索的内联脚本

java - 如何从重定向读取 JSF 中的 GET 请求参数

javascript - 在 Jade 文件中渲染内联 Javascript

javascript - 如何在 Canvas 内绘制文本框

javascript - 将外部 SVG 加载到 SVG 中

php - 为什么我通过 jquery ajax 和 codeigniter 得到验证错误?

javascript - 尝试建立 Angular 项目时的业力问题