围炉网

一行代码,一篇日志,一个梦想,一个世界

多次重定向的问题报错XMLHttpRequest cannot load Cross-origin redirection denied by Cross-Origin Resource Sharing policy

在项目研发过程中发现一个奇葩问题:

iPhone前端访问地址A,A返回302跳转到地址B,B又返回302跳转到地址C。这时发现跳转没有响应,抓包发现浏览器报错了XMLHttpRequest cannot load Cross-origin redirection denied by Cross-Origin Resource Sharing policy. 但是分别测试A跳转到B以及B跳转到C时,跳转都是正常的。

设置Access-Control-Allow-Origin,Access-Control-Allow-Headers等都没有效果。网上搜了一遍,发现了这篇文章http://harttle.com/2016/12/30/cors-redirect.html 感觉与文章中提到的Safari限制多次重定向吻合(多次重定向涉及的一个关键问题是:preflight 后的请求不允许重定向)。

既然是浏览器做了限制,只好通过其它办法来解决。方法如下:B不直接返回302,而是一个空白页面,在这个页面中由js进行重定向。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注

沪ICP备15009335号-2