【发布时间】:2017-02-10 15:44:42
【问题描述】:
更新的解决方案和问题历史
我的设置是这样的:
我让 CORS 理解了错误的方式,认为 HTTP 服务器应该为标头提供服务。事实上,需要提供 CORS 标头的是第 3 方 API。
由于第 3 方不发送 CORS 标头,并且 fetch client 期望那些(绕过浏览器的同源策略)出现如下错误消息:
Fetch API 无法加载 http://api.sl.se/api2/realtimedeparturesV4.json?key=b99d17e1714142ca90ed017aeead32fc&siteid=9001。请求的资源上不存在“Access-Control-Allow-Origin”标头。因此,不允许访问 Origin 'http://localhost:9000'。
现在,可以使用{mode: 'no-cors'} 在获取客户端中打开 CORS,但这会禁止 JavaScript(除非响应是纯文本)。
我选择的解决方案是在服务器端实现一个代理(为简单起见:与提供 Aurelia 页面的域相同),然后调用第 3 方。服务器端没有 CORS 限制。
更好的解决方案是第 3 方支持 CORS,但有时这不是一个选项(即第 3 方)。
【问题讨论】:
-
不。它是需要发送 CORS 标头的 API。
-
如果您发布有关 API 设置的更多详细信息,也许我们可以提供帮助。但这绝对与 Aurelia-CLI 无关。
-
更多详情现已发布
标签: aurelia