You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Ajax jQuery与Node.js时遭遇404错误,请求排查原因

问题原因及解决方法

核心问题:路由匹配不匹配

你的Node.js路由定义为/createNonExist/:tagName,其中:tagName是URL路径参数,要求请求URL必须是/manageKeyword/createNonExist/具体标签名的格式。但你的Ajax请求URL是/manageKeyword/createNonExist,同时用data字段传递tagName——GET请求的data会被转换为URL查询参数(即?tagName=example-tag),这和路由期望的路径参数格式完全不符,服务器找不到对应路由,因此返回404错误。

次要问题:Ajax语法错误

你的if语句多写了一个左括号:if((true){,正确写法应为if(true){,该语法错误会导致JavaScript代码无法执行。


两种修正方案

方案1:保留路径参数格式(修改Ajax请求)

不需要改动Node.js路由,只需把tagName放到URL路径中,匹配路由的:tagName参数:

<script>
    if(true){
        $.ajax({
            type: "GET",
            url: '/manageKeyword/createNonExist/example-tag',
            cache: false,
            timeout: 5000,
            success: function (res) {
                console.log(res);
            },
            error: function (jqXHR, textStatus, errorThrown) {
                alert('error ' + textStatus + " " + errorThrown);
            }
        });
    }
</script>

方案2:改用查询参数传递(修改Node.js路由)

修改路由定义,去掉路径参数,改为接收查询参数:

router.get("/createNonExist", KeywordCtrl.apiCreateNotExistedKeyword);

然后在apiCreateNotExistedKeyword控制器中,通过req.query.tagName获取参数,这样你原来的Ajax请求(用data传参)就能正常匹配路由。

内容的提问来源于stack exchange,提问作者Javad-M

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 16:01:16