FastAPI 跨域工作不正常, CORS 可以支持二级域名吗?

2022-04-21 10:27:45 +08:00
 Richard14

在 github pages 的网页里调用自己的 fastapi 后端,需要单独设置一下 CORS 。目前后端使用下面的代码是能正常工作的

from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()

app.add_middleware(
    CORSMiddleware,
    allow_origins=["*", ],
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],
)

但是将*号改成自己的网址的话却会显示请求被 cors 拒绝,搞不太清楚哪步出了问题

    allow_origins=["https://my.github.io", ] # 改成这样以后就访问不了了

是因为 cors 只支持 https://*.github.io 这种写法吗?还是后端反向代理的原因,请求经过 nginx 反向代理到 fastapi 以后 origin 变了?

2439 次点击
所在节点    Python
3 条回复
lisongeee
2022-04-21 10:31:13 +08:00
被拒绝是浏览器拒绝还是服务器拒绝?,完整的网络请求日志是什么?
LeeReamond
2022-04-21 11:24:50 +08:00
感觉不应该有问题,cors 没有不支持二级域名的说法,nginx 反向代理也不会替换 origin
xuanbg
2022-04-21 14:39:22 +08:00
allow_origins 星号现在不行了,也不能写多个域名。。。你要从请求头获取 origin 的值然后赋值给 allow_origins 才行。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/848299

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX