Ajax - GET方法不发送参数

时间:2018-02-07 16:31:00

标签: javascript node.js ajax get routes

这是我的要求:

var xhttp = new XMLHttpRequest();
xhttp.open("GET", "/api/registerRequest?user=user", true);
xhttp.send();

以下是处理请求:

var express = require("express");
var router = express.Router();

router.get("/registerRequest/:user", function(req, res, next){
    console.log("response for param");
    console.log(req.params.user);
});

router.get("/registerRequest", function(req, res, next){
    console.log("normal response");
    console.log();
});

这是应用程序:

var express = require("express");
var app = express();
app.use("/api", index);

请注意,这些只是一小部分,与问题相关,即代码的一部分。

现在,控制台中的输出是

  

正常回应

但根据我的理解,它应该是:

  

对param的回应

     

用户

2 个答案:

答案 0 :(得分:2)

你误解了路由。

router.get("/registerRequest/:user"匹配/registerRequest/...表单的网址,其中...变为req.params.user

您没有制作这样的网址。

答案 1 :(得分:1)

在网址/api/registerRequest?user=user中,您将用户作为查询参数发送。这将允许您从req.query.user访问它。 more here

要从req.params.user访问它,您需要将ajax请求中的网址更改为/api/registerRequest/userdoc reference