gpt4 book ai didi

javascript - Nodejs/Expressjs Request访问API时返回404

转载 作者:行者123 更新时间:2023-11-30 16:12:37 26 4
gpt4 key购买 nike

我正在尝试访问 API 的授权数据,我能够通过浏览器中的 ajax 调用成功获取访问数据,但无法通过使用请求包或 Nodejs 中的 native http 请求方法/Express.

ajax调用:

var url = 'https://subdomain.example.com/api/auth';
var data = {
token: "Data token" // A token representing user credentials
};

$.ajax({
url: url,
data: data,
type: "POST",
success: function(resp) {
console.log(resp);
}
});

nodejs请求调用:

var url = 'https://subdomain.example.com/api/auth';
var data = {
token: "Data token"
};

app.get('/api', function(req, res) {
request({
url: url,
method: "POST",
qs: data
}, function(err, apiRes, apiBody) {
res.send(apiBody);
});
});

ajax 调用返回一个页面,其中包含访问 API 其余部分所需的 token 数据。我希望从 Node 中的请求中获得相同的返回值,但我却收到一个错误页面,上面写着“404 - 未找到文件或目录。您正在寻找的资源可能已被删除、名称已更改或暂时不可用。” apiRes 对象也有 404 statusCode,但我无法访问除错误信息之外的任何数据。

有什么理由可以解释为什么一个 http 请求在浏览器中成功而不在服务器中成功,即使它们携带相同的参数和 url?我遇到过与此 API 中的其他 URL 相同的 404 问题,在那些情况下,我遇到了问题,因为 API 在其响应中未包含“Access-Control-Allow-Origin” header 。我想这是可能的,但我可以从 API 响应中提取的最详细的错误信息是状态代码。

最佳答案

这可能对你有帮助

app.get('/api', function(req, res) {
request({
url: url,
method: "POST",
json: data
}, function(err, apiRes, apiBody) {
res.send(apiBody);
});
});

据我所知,POST 不支持 qs(query string)

关于javascript - Nodejs/Expressjs Request访问API时返回404,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36014356/

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