我正在开发一个身份验证网站,用于验证来自Web服务的数据。我的网站在本地运行,Web服务在不同的域ex:test.abc.com上运行。如果验证成功,则将响应存储在cookie中。
如果数据在cookie中可用且未过期,则在第二次调用中不要求进行身份验证,但需要从后端验证用户。为此,我使用下面的代码。
$.ajax({
url:"https://test.abc.com/test/DummyTest",
method:"GET",
dataType:"json",
beforeSend: function(xhr){
xhr.withCredentials = true;
},
success:function(data){
alert(Success);
},
error:function(xhr,err){
alert("Error");
});
我正在使用jquery1.6
我检查了浏览器选项,并将cookie与我的localhost ip(160.225.230.50)地址一起存储。但Web服务位于不同的域(abc.com)。在第二次访问时,我得到了错误响应。
请帮我解决这个问题。
答案 0 :(得分:2)
为了实现此功能,您的身份验证页面应发送Access-Control-Allow-Origin
和Access-Control-Allow-Credentials
标题。
使用Access-Control-Allow-Credentials: true
时,您无法将Access-Control-Allow-Origin
设置为通配符,但需要指定原点:Access-Control-Allow-Origin: https://abc.com
此外,还有一种更简单的方法来设置xhr字段:
$.ajax({
xhrFields: {
withCredentials: true
},
type: 'POST',
url: ...
});