【问题标题】:Post request to Node returns 404向节点发布请求返回 404
【发布时间】:2017-12-30 05:34:44
【问题描述】:

我在 jQuery 中有这个:

$.ajax(
    {
        type: 'POST',
        data : mydata,
        url : '/routerfunction',
        dataType : 'String',
        success : function(data)
        {
            //do stuff

        },
        error: function(xhr, status, error)
        {
            console.log(error);
            console.log(xhr);
            console.log(status);
        },


    }

我在 index.js(node) 中有这个

router.post('/routerfunction/:mydata', function(req,res)
{
    //do stuff
}

我在 app.js(node) 中有这个

app.use('/', index);
app.use('/users', users);

当我向 routerfunction 发出 POST 请求时,我收到 404 错误。我真的试图找到错误,但我不能..错误可能在哪里?提前致谢。

【问题讨论】:

  • 我对节点不是很熟悉,但'/routerfunction/:mydata' 让您看起来好像希望数据在 url 上。这不是 POST 请求的方式。数据在请求正文中。
  • 它在你的 ajax url 中错过了 routerfunction 之后的一些东西,你的节点正在等待类似 /routerfunction/data 作为 url 的东西

标签: javascript jquery node.js express


【解决方案1】:

这条路线:

router.post('/routerfunction/:mydata', ...

需要一个类似的 URL:

/routerfunction/SOMETHING

并且不会匹配:

/routerfunction

所以这里的 404 是正确的。

你需要:

router.post('/routerfunction', ...

匹配该请求。

请记住,您还需要一个 body-parser 来解析正文,该正文将包括在 AJAX 请求中发送的数据,然后您可以使用 req.body 访问这些数据 - 请参阅这些答案以获取一些示例:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-29
    • 2018-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多