【发布时间】:2018-03-13 08:40:28
【问题描述】:
我正在使用Vue js 开发一个应用程序。
根据我的设置,我需要在设置更改时将变量传递给我的 URL。
<!-- language: lang-js -->
$.get('http://172.16.1.157:8002/firstcolumn/' + c1v + '/' + c1b, function (data) {
// some code...
});
但是当我的应用点击 URL 时,它会显示以下消息。
Failed to load http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26: Redirect from 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26' to 'http://172.16.1.157:8002/firstcolumn/2017-03-01/2017-10-26/' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8080' is therefore not allowed access.
【问题讨论】:
-
这个问题是因为同源策略阻止响应被接收,因为由于端口号的不同,发起/接收域不同。要解决此问题,您需要在来自
http://172.16.1.157:8002/firstcolumn/...的响应中返回 CORS 标头。具体如何执行取决于您使用的服务器端基础架构。 -
在这种情况下,Origin A 向 Origin B 发出 GET 请求;响应重定向到 Origin B 中的不同位置。解决方案是诱使 Chrome 认为 Origin B 是 Origin A。如果 Origin B 重定向到 Origin C 怎么办?我们可以直接指向任何 Origin C,还是必须欺骗 Origin C 以显示为 Origin A?我认为我们 可以 重定向到任何 Origin C(例如重定向到第三方单点登录页面或 www.stackoverflow.com ),无论 Origin A 或 Origin C 的
Access-Control-Allow-Origin标头如何) -
在我的情况下,没有一个答案有效,最后结果是我的中间件(在本地服务器中)出现错误。以防它帮助某人
标签: javascript jquery vuejs2