Nodejs/Expressjs访问API时请求returns404
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 调用 return 一个包含令牌数据的页面,我需要访问 API 的其余部分。我希望从 Node 中的请求中获得相同的 return 值,但我却收到一个错误页面,上面写着“404 - 找不到文件或目录。您正在寻找的资源可能已被删除,名称已更改,或暂时不可用。” apiRes object 也有 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(查询字符串)
我正在尝试访问 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 调用 return 一个包含令牌数据的页面,我需要访问 API 的其余部分。我希望从 Node 中的请求中获得相同的 return 值,但我却收到一个错误页面,上面写着“404 - 找不到文件或目录。您正在寻找的资源可能已被删除,名称已更改,或暂时不可用。” apiRes object 也有 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(查询字符串)