0

我正在通过 elm-reactor 运行 elm 前端localhost:8000。它应该从通过 gunicorn on 运行的falcon 后端localhost:8010加载 json 文件。这失败了。

前端能够加载由 elm-reactor ( :8000) 提供的静态虚拟文件,但是当我尝试用实际后端 ( :8010) 替换虚拟文件时,由于缺少标头而失败:

跨域请求被阻止:同源策略不允许在http://localhost:8010/api/sheets读取远程资源。(原因:缺少 CORS 标头“Access-Control-Allow-Origin”)。

来自 Firefox Inspector 的错误消息似乎相当清楚,但我不知道如何解决这个问题。我已经在 falcon 中安装了一个 CORS 中间件,但这并没有改善这种情况。

from falcon_cors import CORS
cors = CORS(allow_origins_list=['*'])
api = falcon.API(middleware=[cors.middleware])

我也尝试过使用起源'localhost:8000''localhost'但都不起作用。

知道如何解决这个问题吗?

4

2 回答 2

1

试试这个。希望这能解决您的问题。

import falcon
from falcon_cors import CORS
cors = CORS(allow_origins_list=['http://localhost:8080', 'http://localhost:8000', 'http://localhost:8010'], allow_all_headers=True, allow_methods_list=['GET', 'POST', 'OPTIONS'])
api = falcon.API(middleware=[cors.middleware])
于 2017-01-16T13:10:35.283 回答
0

事实证明 falcon_corsallow_all_origins=True作为参数提供。这解决了我的问题,但不是一个完美的解决方案。

使用 POST 请求时也allow_all_methods=True应该设置。

于 2016-09-17T12:15:56.933 回答