[英]Nodejs/Expressjs Request returns 404 when accessing API
我正在尝试访问API的授权数据,并且能够通过浏览器中的ajax调用成功获取访问数据,但是无法通过使用Nodejs / Expressjs中的请求包或本机http请求方法来获取访问数据。
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其余部分所需的令牌数据。 我希望从Node中的请求中获得相同的返回值,但相反,我看到一个错误页面,提示“ 404-找不到文件或目录。您正在寻找的资源可能已被删除,名称更改或被暂时删除。不可用“。 apiRes对象也具有404 statusCode,但是除错误信息之外,我无法访问更多数据。
即使有相同的参数和url,http请求在浏览器而不是服务器中都不会成功吗? 我在此API中遇到了与其他URL相同的404问题,在这些情况下,我遇到了问题,因为该API在响应中未包含“ Access-Control-Allow-Origin”标头。 我想这是有可能的,但是我可以从API响应中提取的最详细的错误信息是状态码。
这可能对您有帮助
app.get('/api', function(req, res) {
request({
url: url,
method: "POST",
json: data
}, function(err, apiRes, apiBody) {
res.send(apiBody);
});
});
据我所知POST不支持qs(查询字符串)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.