gpt4 book ai didi

Javascript 和 Node.js - 发出 JSON 请求

转载 作者:太空宇宙 更新时间:2023-11-04 03:08:46 25 4
gpt4 key购买 nike

在此Question我读到在 node.js 中你可以区分 html 请求和 json 请求,如下所示:

app.get('/route', function (req, res) {
if (req.is('json')) res.json(data);
else if (req.is('html')) res.render('view', {});
else ...
});

现在我的问题是如何发出在 Node 服务器中解释为 json 的请求?
因为我尝试使用 $.ajax 和 $.getJson 并在浏览器中输入,所有都是 html 请求。
这是我的要求

$.ajax({ type: 'GET', url: "/test", dataType:"json", success: function(data){log(data)}})

最佳答案

req.is方法通过检查 Content-Type header 来检查传入请求类型,因此您需要确保在发送请求之前在请求中设置此 header ,例如

$.ajax({
type: 'GET',
url: '/route',
contentType: "application/json; charset=utf-8",
....
});

但是,Content-Type header 用于确定请求主体的格式,而不是响应的格式。建议您使用Accept header 而不是通知服务器哪种类型的格式适合响应,例如

app.get('/route', function (req, res) {
if (req.accepts('html')) {
res.render('view', {});
} else if (req.accepts('json')) {
res.json(data);
} else {
...
}
});

然后在客户端,您不需要担心 Content-header 而是 Accept header ,并且 jQuery 已经提供了一个方便的小 method为此

$.getJSON('/route', function(data) {
...
});

关于Javascript 和 Node.js - 发出 JSON 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31219846/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com