首页 新闻 会员 周边 捐助

关于利用html5跨域问题

0
悬赏园豆:5 [已解决问题] 解决于 2020-10-09 19:11

我前端用的vue框架单页面,后台.net coreapi ;然后利用html的cros允许跨域资源共享,前端credentials:true,后端Access-Control-Allow-credentials:true,origin不是设置的*号,问题来了:
在本地开发ip访问时,cookie domain='', path='/',chrome和firefox可以,ie edge不行,但是看到ajax返回的response里有set-cookie,但是没有写到本地;

还有就是我在本地host 127.0.0.1 www.test.com 后,,,cookie domain设置为test.com或者.test.com后,所有浏览器都不行,ajax请求返回连set-cookie都没有了;
难道是html cors兼容性问题?还是有哪些没注意到?

哈哈啊的主页 哈哈啊 | 初学一级 | 园豆:5
提问于:2019-01-05 19:32
< >
分享
最佳答案
0

经过一夜失眠的代价,终于搞清楚了,没办法,我这个人心里装不得事;
原因很直接,自己没有弄清楚原理,从表面去想问题了,有时候发现坐在电脑狂调试也没有,有必要静下心来举一反三,推敲每个字,而真正点醒我是w3c 的一句话:cors(跨域资源共享),点睛之笔:共享。
原来认为的是跨域,例如前端www.a.com,接口www.b.com,跨域后调用接口后www.b.com会设置域名为a.com的cookie,我就在接口哪里设置cookie的时候把域名设置为a.com,这种想法是错误;
因为所谓共享,就是把cookie.domian='b.com'共享给www.a.com,并不是自动去设置www.a.com下域名的cookie,所以之前我一直在接口那边设置cookie的域为a.com,所以没有效果;
改成接口域后,发现在浏览器里打开www.a.com能看到域为b.com的cookie;
这次真是自己把自己给绕进去了,开发最忌讳想当然了,哎~~~;不过这种跨域cookie js还是无法访问的,只好把令牌用一个cookie存着,然后设置httponly,然后www.a.com调用登录接口后设置域为a.com的域名保存登录信息,这样单页应用刷新能保持登录状态

哈哈啊 | 初学一级 |园豆:5 | 2019-01-06 11:48
其他回答(1)
0

之前遇到过.是那个httponly造成的.

收获园豆:5
吴瑞祥 | 园豆:29449 (高人七级) | 2019-01-05 23:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册