浏览器在JS重定向后发送错误/以前的原始标题

时间:2014-09-23 05:57:07

标签: javascript cors reload

我正在开发一款需要访问CORS资源的应用。在应用程序中,用户可以更改其子域(即 - 从mysubdomain.myapp.com到mynewsubdomain.myapp.com)。

服务器读取原始标头,并将该子域添加到CORS请求的允许来源。

我的问题是,在用户更改其子域后,我执行了一个简单的window.location.href = mynewsubdomain重定向,但这会导致资源加载失败(JS和样式)并出现错误:

Font from origin 'http://localhost:7000' has been blocked from loading by Cross-Origin Resource Sharing policy: The 'Access-Control-Allow-Origin' header has a value 'http://old.myapp.dev' that is not equal to the supplied origin. Origin 'http://new.myapp.dev' is therefore not allowed access.

在Chrome中检查网络请求,我可以看到请求标头中的Origin仍然是http://old.myapp.dev,这似乎是问题所在。后续页面加载工作正常。我可以做些什么吗?我可以指示浏览器使用正确的(新)子域作为原点吗?我应该以不同的方式重定向吗?

MDN说这有关改变window.location.href:“请注意,安全设置,如CORS,可能会阻止这种情况有效发生”。但没有太多信息可以帮助解决这个问题。

1 个答案:

答案 0 :(得分:3)

当我尝试从另一个子域获取相同的文件时,我遇到了同样的问题。

通过添加" Vary:Origin"解决了这个问题。标题为响应。参考:https://forums.aws.amazon.com/thread.jspa?messageID=378304

希望这也适合你。