我正在使用Jquery发出ajax请求,一切正常,但页面受到保护,因此只有登录用户才能发出请求。我已经登录但我认为Jquery ajax不会将我的cookie发送到网址。如何解决此错误,以便发送cookie,标题,以便页面不将其视为401请求?
提前致谢:)
答案 0 :(得分:1)
听起来您正在尝试在与您的网站运行的域不同的域上请求页面。如果是这种情况,那么浏览器会告诉您请求是未经授权的而不是其他站点。
修改强>
如果是这种情况并且您控制其他网站,那么我相信您可以使用特定标头(http://www.w3.org/TR/2008/WD-access-control-20080912/#access-control-allow-origin)来允许请求。如果你不控制其他服务器那么就没有(纯粹的javascript)解决这个问题了。
您可以在您控制的服务器上运行代理,以请求该页面并将其传递给您。但是,这仍然存在问题,即它将在没有用户cookie的情况下请求页面。
答案 1 :(得分:0)
我的jquery解决方案: 在你的ajax电话中(基本授权):
headers: {
"Authorization": "Basic " + btoa('username:password')
},
或
beforeSend: function (xhr){
xhr.setRequestHeader('Authorization', "Basic " + btoa('username:password'));
},
答案 2 :(得分:-1)
您仍然可以正常查看会话