多次重定向的问题

【声明】本文为AdamsLee原创,转载请注明出自围炉网并保留本文有效链接:多次重定向的问题, 转载请保留本声明!

在项目研发过程中发现一个奇葩问题: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进行重定向。

此条目发表在Uncategorized分类目录,贴了标签。将固定链接加入收藏夹。