我在localhost:8000
上通过elm-reactor运行elm前端。它应该从一个通过gunicorn在localhost:8010
上运行的猎鹰后端加载json文件。这个操作失败。
前端能够加载由elm-reactor (:8000
)服务的静态虚拟文件,但当我试图通过实际后端(:8010
)替换虚拟时,由于缺少标头而失败:
Cross-Origin Request Blocked:同源策略禁止读取远端资源为http://localhost:8010/api/sheets。(原因:歌珥标题'Access-Control-Allow-Origin'丢失).
来自Firefox检查器的错误信息似乎相当清楚,但我不知道如何修复它。我已经在falcon中安装了一个CORS中间件,但这根本没有改善这种情况。
from falcon_cors import CORS
cors = CORS(allow_origins_list=['*'])
api = falcon.API(middleware=[cors.middleware])
我也尝试使用'localhost:8000'
和'localhost'
的起源,但都不工作。
你知道怎么解决这个问题吗?
试试这个。希望这将解决您的问题。
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])
结果是falcon_cors提供了allow_all_origins=True
作为参数。这解决了我的问题,但不是一个完美的解决方案。
当使用POST请求时,也应该设置allow_all_methods=True