带有Aurelia CLI服务器的CORS

带有Aurelia CLI服务器的CORS,aurelia,Aurelia,问题的更新解决方案和历史记录 我的设置如下: 我让CORS错误地理解了这一点,认为HTTP服务器应该为头提供服务。事实上,需要提供CORS头的是第三方API 由于第三方不发送CORS头,并且fetch client期望这些头(以绕过浏览器的同源策略),出现如下错误消息: 无法加载获取API。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“” 现在,可以使用{mode:'no CORS'}在fetch客户机中打开CORS,但这禁止使用Java

问题的更新解决方案和历史记录

我的设置如下:

我让CORS错误地理解了这一点,认为HTTP服务器应该为头提供服务。事实上,需要提供CORS头的是第三方API

由于第三方不发送CORS头,并且
fetch client
期望这些头(以绕过浏览器的同源策略),出现如下错误消息:

无法加载获取API。请求的资源上不存在“Access Control Allow Origin”标头。因此,不允许访问源“”

现在,可以使用
{mode:'no CORS'}
在fetch客户机中打开CORS,但这禁止使用JavaScript(除非响应是纯文本)

我选择的解决方案是在服务器端实现一个代理(为简单起见:与Aurelia页面服务的域相同),然后调用第三方。服务器端没有CORS限制


更好的解决方案是,第三方支持CORS,但有时这不是一个选项(即第三方)。

Aurelia Fetch客户端的默认值是CORS,因此您的Aurelia应用程序应该能够从第三方服务器上获取。
在CORS工作所需的飞行前请求中,您的API端点(而不是您的Aurelia Cli服务器)可能没有将正确的头发送回浏览器(您的Aurelia应用程序)。什么标题当然取决于您试图从端点发送和接收的内容。

否。这是需要发送CORS头的API。如果您发布有关API设置的更多详细信息,也许我们可以提供帮助。但它肯定与Aurelia-CLI无关。现在发布了更多详细信息。我添加了代码,包括API端点(开放端点)的URL。我对CORS的理解是,最初的Aurelia应用程序是由服务器发送标题的(允许浏览器与谁联系),但我开始认为这是错误的。