解决ajax跨域请求数据cookie丢失问题<转载>
本帖最后由 xiaoye 于 2015-9-30 11:21 编辑本文主要是从前端jquery和服务端php为例,分别使用实例解决ajax跨域请求数据cookie丢失问题,推荐给有相同需求的小伙伴们。
前端:
以jquery为例:
需要加入
xhrFields: {
withCredentials: true
},
crossDomain: true,
$.ajax({
type: postType,
url: url,
data: postData || '',
xhrFields: {
withCredentials: true
},
crossDomain: true,
success: function () {
successCallback.apply(scope || this, arguments);
},
failureCallback: function () {
failureCallback.apply(scope || this, arguments);
},
dataType: dataType
});
服务器端:
以php为例:
header("Access-Control-Allow-Credentials: true");
header('Access-Control-Allow-Origin: <a href="http://m.z.com'">http://m.z.com'</a>);
根据自己的情况而定
以上所述就是本文关于解决ajax跨域请求数据时cookie丢失的处理方案,希望大家能够喜欢。 支持,看起来不错呢! 学习学习技术,加油! 支持,看起来不错呢! JSONP跨域中好像还没碰到过读取COOKIE的需求
Re: 解决ajax跨域请求数据cookie丢失问题<转载>
感谢分享!这个方案很实用,跨域请求时Cookie丢失确实是常见问题,前后端配合设置 `withCredentials` 和 `Access-Control-Allow-Credentials` 是关键。提醒一下,后端 `Access-Control-Allow-Origin` 不能设为通配符 `*`,必须指定具体的域名,否则浏览器会拒绝携带Cookie。另外IE浏览器可能对跨域Cookie支持不太好,需要留意兼容性。总之,对正在做跨域数据交互的伙伴们很有帮助!
页:
[1]