如何将ajax get请求数据传递给nodejs GET路由? [复制]

Posted

技术标签:

【中文标题】如何将ajax get请求数据传递给nodejs GET路由? [复制]【英文标题】:How to pass the ajax get request data to nodejs GET route? [duplicate] 【发布时间】:2018-02-19 07:18:05 【问题描述】:

这是我的 ajax 请求调用

  $.ajax(
    url: '/refresh',
    type: 'GET',
    contentType: "application/json",
    data: 
        Name: $("#inputName").val(),
        Url: $("#inputUrl").val()
    ,
    success: function(data) 
        console.log('form submitted.' + data);
    
  );

这是nodejs中的GET路由

app.get('/refresh', function(req, res) 
            console.log("My data" + JSON.stringify(req.body));
            //other operations
        

如何在我的 js 中获取从 ajax 调用传递的数据?请帮忙!!非常感谢!

【问题讨论】:

你有什么错误吗? 您正在发出 GET 请求,没有请求正文来描述其内容类型。声称请求的内容类型是 JSON 是错误的。 【参考方案1】:

jQuery 的 .ajax() 方法将 data 属性作为 GET 请求的查询字符串发送,因此在您的 Express 代码中,您必须从 req.query 而不是从 req.body 检索该数据。

【讨论】:

【参考方案2】:

您可以简单地使用req.query:

const id = req.query._some_query_param; // $_GET["id"]

// Sample URL: https://foo.bar/items?id=234
app.get("/items",function(req,res)
   const id = req.query.id;
   //further operations to perform
);

如果你想获取路由参数,你可以使用req.params,它只获取路由参数而不是查询字符串参数。

例如:

// Sample URL: https://foo.bar/items/322
app.get("items/:id",function(req,res)
 const id = req.params.id;
 //further operations to perform
);

【讨论】:

以上是关于如何将ajax get请求数据传递给nodejs GET路由? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何将 ajax 数据传递给 React 组件?

如何推迟将 Ajax 数据传递给子组件?

如何将ajax上的数据传递给codeigniter控制器

通过 AJAX 将数据传递给 Laravel 控制器

为啥 Ajax 将“未定义”数据传递给 MySql?

通过 AJAX 将数据传递给 MVC 中的控制器