【问题标题】:Nodejs GET and POST mixed up in live server but working in localhostNodejs GET 和 POST 在实时服务器中混合,但在 localhost 中工作
【发布时间】:2020-07-21 19:41:35
【问题描述】:

我有以下 API,按顺序

router.post('/:name/insertDesign', function(req, res) {
  console.log('[API] /insertDesign { username: ' + req.params.name + ' }');


router.get('/:name/:project', excludeSpecialRoutes, function(req, res, next) {
    result = {
      username: 'anonymous',
      project: req.params.project,
      access: 'Public',
    };
  console.log('[API] /project', result);

在 localhost 中运行 post call 时,我得到以下日志:

[API] /insertDesign { username: vc }

但在实时服务器中运行后调用时,日志如下:

[API] /project { username: 'anonymous',
  project: 'insertDesign',
  access: 'Public' }

这很混乱,API调用不应该按顺序到达代码吗?该代码之前在实时服务器中运行良好。请提出如何解决此问题的建议。谢谢。

【问题讨论】:

  • 讨厌让它听起来微不足道,但是如果您点击该日志,那是因为您执行的是 GET 而不是 POST
  • 您是否 100% 确定您正在使用 POST 请求?
  • 我使用相同的客户端应用程序,只是将 URL 从本地更改为实时服务器;嗯,那我可能得调试客户端应用了
  • 尝试使用 REST 客户端(如 Postman)进行调试,以防万一确认大家的预感 :)
  • 是的,100% 确定,刚刚测试并在下面标记了解决方案

标签: node.js express post get


【解决方案1】:

如果它在服务器上,可能是你的 nginx。 POST request turns into GET request

我假设你在没有 nginx 的本地机器上尝试过,而服务器有一个。

【讨论】:

  • 好的,我刚刚检查了真正的问题出在我的 nginx 配置中 - 它转换了帖子以获取 .. 非常感谢!
【解决方案2】:

好像你在实时服务器中发出了获取请求,而不是发布。

【讨论】:

    猜你喜欢
    • 2015-05-26
    • 1970-01-01
    • 2013-01-24
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2016-11-19
    • 1970-01-01
    • 2015-12-13
    相关资源
    最近更新 更多