Javascript node.js中的HTTP请求将response.statuscode返回为禁止
我想通过node.js在第三部分网站中发布数据,但我得到了错误403。 我在浏览器中有以下代码:Javascript node.js中的HTTP请求将response.statuscode返回为禁止,javascript,node.js,http,request,header,Javascript,Node.js,Http,Request,Header,我想通过node.js在第三部分网站中发布数据,但我得到了错误403。 我在浏览器中有以下代码: $.ajax("/login",{ /// here i am in https://255.255.255 /// I am obscuring the real host ip data:{ username:"username", password: "password", autologin:"true"}, method:"POST" }).done(fu
$.ajax("/login",{ /// here i am in https://255.255.255 /// I am obscuring the real host ip
data:{
username:"username",
password: "password",
autologin:"true"},
method:"POST"
}).done(function(msg) {
console.log( msg );
/// another $.ajax request here
});
它很好用。当我尝试在node.js中使用它时,问题开始了,在SO用户的帮助下,我得到了以下代码:
var request = require('request');
request({
method: "POST",
baseUrl: "https://255.255.255",
uri: "/login",
form: {
username: "username",
password: "password",
autologin: "true"
}
},
function (error, httpResponse, body) {
if (error) {
console.error(error);
}
console.log(httpResponse.statusCode);
console.log(body);
});
这里我得到了httpResponse.statusCode作为403
-禁止。
我没有预料到这一点,因为我的$.ajax
代码可以工作,并且不会返回此错误
到目前为止,我所尝试的:
- 将用户代理设置为“node.js”、“request”、“Mozilla/5.0”
- 使用axios(也得到错误403)
- 使用请求承诺
- 如何查看这两个代码的运行,以了解它们之间的区别
- 更多的用户代理,我要用哪一个来模拟浏览器
- 如果有更好的npm包在第三方网站上发布数据
提前感谢。jQuery代码是以明文形式发送用户名和密码,还是使用授权?您可以在发出请求时在浏览器控制台中进行检查。通常,用户/密码作为授权头发送,您将在请求头中看到类似“Authorization:Basic”的内容
如果是这样,您还需要在节点中复制它。您可以查看更多有关如何执行的信息—这非常简单。也许可以查看失败HTTP请求的响应体。可能有错误消息。没有我无法检查的错误,当在浏览器中使用ajax时,我在控制台中得到的全部信息是:`{success:true,redirectTo:”“}`谢谢。你的评论实际上很有用。我转到控制台中的“网络”选项卡,然后看到了我的.ajax请求,发现返回403的是他们的内容安全策略。可悲的是,我投了反对票,现在我被禁止提出这样的问题。你能给我推荐一个npm软件包,我可以模拟我的请求的来源吗?