【发布时间】:2021-02-08 03:41:33
【问题描述】:
我正在构建我的第一个 Aurelia 应用程序,并尝试按如下方式调用我的 API:
const data = await this.httpClient.fetch('https://my-api-server/api/employees').then(response => response.json());
这会导致浏览器出现以下错误:
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at https://my-api-server/employees. (Reason: CORS header ‘Access-Control-Allow-Origin’ missing).
这完全在意料之中。我使用迄今为止使用过的所有其他 JS 框架(Angular、React、Vue.js、Express with vanilla JS)处理 CORS 的方法曾经是在 Web 服务器中为 API 调用设置代理路径,如:
If request URL starts with "/api",
then remove "/api", and re-route request to "https://my-api-server"
我不知道如何在 Aurelia 中进行配置。任何指针?我是否以错误的方式处理这个问题?
我知道我可以将相关的 CORS 标头添加到我的 API 响应中,但我认为这不是正确的方法。此 API 由多个应用程序使用,不得更改以安抚某一特定消费者。
【问题讨论】:
-
Aurelia 仅在浏览器中运行,它没有服务器。您需要告诉我们您使用什么服务器来为您的应用程序提供服务。
-
@AshleyGrant 谢谢!我认为你让我走上了正确的道路。我使用 aurelia-cli 创建项目,选择“Web”作为目标平台。我可以看到它使用 webpack-dev-server,我不想使用它,因为它仅用于开发。我将其更改为使用 express 代替。我目前正在尝试使用gist.github.com/zewa666/ca1d5b0cf1fdccd5f756948fa64c66dd 作为指南进行自动构建和browserSync。找到满意的解决方案后,我会发布这个问题。