我在Azure上有一个静态应用程序,它正在从Azure上的Web应用程序调用API,尽管添加了一个cors中间件,但仍出现cors错误

flseospp  于 2023-10-22  发布在  其他
关注(0)|答案(1)|浏览(143)

CORS策略已阻止从源“https://www.example.com”访问“https://itemapp.azurewebsites.net//items/list”的获取thankful-river-01992e00f.3.azurestaticapps.net:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果一个不透明的响应满足了你的需求,将请求的模式设置为“no-cors”,以在禁用CORS的情况下获取资源。

from fastapi import FastAPI
from db import Base,engine
from item import router
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()
origins = [
    "https://thankful-river-01992e00f.3.azurestaticapps.net/"
]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"],`your text`
)
app.include_router(router, prefix="/items")
#create all tables
Base.metadata.create_all(bind=engine)
'''
thigvfpy

thigvfpy1#

我同意**@jub0bs@juunas**谢谢你的评论。

  • 请确保在代码中不包含尾随的斜杠/,这样origin就不会将自己评估为false并禁止CORS连接。*
    更新代码:-
from fastapi import FastAPI
from db import Base, engine
from item import router
from fastapi.middleware.cors import CORSMiddleware

app = FastAPI()
origins = [
    "https://thankful-river-01992e00f.3.azurestaticapps.net"
]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"],
    allow_headers=["*"]
)
app.include_router(router, prefix="/items")

# Create all tables
Base.metadata.create_all(bind=engine)

此外,请确保您已在应用服务CORS中添加了静态Web应用程序URL,即使在此处添加URL时,也不允许使用斜杠,参考如下:-

相关问题