javascript - 苹果手机IOS全版本safari浏览器和Android 6.0 Webview 跨域请求(CORS)时,不带cookies问题
迷茫
迷茫 2017-04-10 16:10:20
[JavaScript讨论组]

一、问题描述

已知IOS全版本webview、IOS全版本原生safari浏览器和Android 6.0微信Webview中,当xhr以CORS方式跨域请求时,浏览器不带cookies,导致登陆状态丢失等。

目前无法找到原因,故向各位求助。

二、复现环境

(1)浏览器环境:

使用如下列表中的任一手机,和该手机内的浏览器(或应用webview),即可复现该问题:

(A)苹果手机,IOS全版本,safari浏览器
(B)苹果手机,IOS全版本,微信+内嵌系统Webview
(C)安卓手机(Nexus 5),原生Android 6.0,微信+内嵌系统Webview

其余手机,如Android 6.0 + Chrome,则不存在该问题。

三、复现步骤

(1)以上述浏览器打开如下地址:

http://surl.sinaapp.com/corsclient/user.html

(2)等待一段时间后,待提示“CROS运行成功”后,留意“上一个session数字”和“下一个session数字”

(3)点击“点击刷新页面”,待提示“CROS运行成功”后,留意该步骤中的“上一个session数字”是否和步骤(2)中的“下一个session数字”是否完全相同。

四、预期结果

复现步骤(3)中的“上一个session数字”和步骤(2)中的“下一个session数字”完全相同,并且不会是“NO_RANDOM_NUMBER_IN_SESSION”。

五、目前故障结果

复现步骤(3)中的“上一个session数字”永远为“NO_RANDOM_NUMBER_IN_SESSION”。提示CORS方式跨域请求不带cookie。

六、附录

复现源代码:https://github.com/HorseLuke/drafts/tree/master/cors-header

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
PHP中文网

跨域就是不带cookie,任何浏览器都这样,跟设备无关。所以说才有了oauth2这类的api的出现,通过在请求信息里面加一个token来标识用户的登陆状态。
如果两个域的根域名是一个还有解救方法,如果不是,那就不能再通过cookie这种手段了。

PHP中文网

我也遇到这个问题了,求解。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号