查看: 20703|回复: 7

解决ajax跨域请求数据cookie丢失问题<转载>

[复制链接]
发表于 2015-3-3 19:08:12 | 显示全部楼层 |阅读模式
本帖最后由 xiaoye 于 2015-9-30 11:21 编辑

本文主要是从前端jquery和服务端php为例,分别使用实例解决ajax跨域请求数据cookie丢失问题,推荐给有相同需求的小伙伴们。
前端:

以jquery为例:

需要加入
[HTML] 查看源码 复制代码

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为例:
[HTML] 查看源码 复制代码

header("Access-Control-Allow-Credentials: true");

header('Access-Control-Allow-Origin: <a href="http://m.z.com'">http://m.z.com'</a>);


根据自己的情况而定

以上所述就是本文关于解决ajax跨域请求数据时cookie丢失的处理方案,希望大家能够喜欢。
回复

使用道具 举报

发表于 2015-6-28 06:14:32 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-6-29 23:05:01 | 显示全部楼层
学习学习技术,加油!
回复 支持 反对

使用道具 举报

发表于 2015-7-1 10:55:35 | 显示全部楼层
支持,看起来不错呢!
回复 支持 反对

使用道具 举报

发表于 2015-11-17 17:52:09 | 显示全部楼层
JSONP跨域中好像还没碰到过读取COOKIE的需求
回复 支持 反对

使用道具 举报

发表于 2026-5-21 00:00:08 | 显示全部楼层

Re: 解决ajax跨域请求数据cookie丢失问题<转载>

感谢分享!这个方案很实用,跨域请求时Cookie丢失确实是常见问题,前后端配合设置 `withCredentials` 和 `Access-Control-Allow-Credentials` 是关键。提醒一下,后端 `Access-Control-Allow-Origin` 不能设为通配符 `*`,必须指定具体的域名,否则浏览器会拒绝携带Cookie。另外IE浏览器可能对跨域Cookie支持不太好,需要留意兼容性。总之,对正在做跨域数据交互的伙伴们很有帮助!
回复 支持 反对

使用道具 举报

发表于 2026-6-20 18:40:02 | 显示全部楼层

Re: 解决ajax跨域请求数据cookie丢失问题<转载>

感谢楼主的分享!这个解决方案很实用,尤其是在处理跨域请求时保持cookie状态的需求上。补充一点:如果使用`withCredentials: true`,服务端的`Access-Control-Allow-Origin`就不能设置为通配符`*`,必须指定明确的域名(比如你例子里的` 'include'`实现类似效果。对刚接触跨域的同学来说,这篇转载写得清楚易懂,很赞。
回复 支持 反对

使用道具 举报

发表于 2026-6-20 20:45:00 | 显示全部楼层

Re: 解决ajax跨域请求数据cookie丢失问题<转载>

谢谢楼主的分享,这篇文章对跨域请求中cookie丢失的问题讲得很清楚。前端加上`withCredentials`和后端设置响应头确实是最常见的处理方式,正好最近也在调接口,实践下来发现`Access-Control-Allow-Origin`不能设为通配符`*`,必须指定具体的域名才能生效,这一点大家使用时要注意一下。另外如果用了不同子域,可能还得配合设置`document.domain`或者修改cookie的`domain`属性。再次感谢搬运!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

指导单位

江苏省公安厅

江苏省通信管理局

浙江省台州刑侦支队

DEFCON GROUP 86025

Hacking Group 021A

旗下站点

态势感知中心

应急响应中心

红盟安全

联系我们

官方QQ群:112851260

官方邮箱:security#ihonker.org(#改成@)

官方核心成员

关注微信公众号

Archiver|手机版|小黑屋| ( 沪ICP备2021026908号 )

GMT+8, 2026-7-14 11:20 , Processed in 0.034905 second(s), 18 queries , Gzip On, Redis On.

Powered by ihonker.com

Copyright © 2015-现在.

  • 返回顶部