繁体   English   中英

访问API时Nodejs / Expressjs请求返回404

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM