FastAPI跨域配置

FastAPI跨域配置

from fastapi import FastAPI
import uvicorn
from fastapi.middleware.cors import CORSMiddleware #解決跨域問題
import os
import redis
from fastapi import BackgroundTasks, FastAPI
from bili_main import xmain

app = FastAPI()  # 創建API實例
app.add_middleware(
    CORSMiddleware,
    # 允許跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允許任何源
    allow_origins=["*"],
    # 跨域請求是否支持 cookie,默認是 False,如果爲 True,allow_origins 必須爲具體的源,不可以是 ["*"]
    allow_credentials=False,
    # 允許跨域請求的 HTTP 方法列表,默認是 ["GET"]
    allow_methods=["*"],
    # 允許跨域請求的 HTTP 請求頭列表,默認是 [],可以使用 ["*"] 表示允許所有的請求頭
    # 當然 Accept、Accept-Language、Content-Language 以及 Content-Type 總之被允許的
    allow_headers=["*"],
    # 可以被瀏覽器訪問的響應頭, 默認是 [],一般很少指定
    # expose_headers=["*"]
    # 設定瀏覽器緩存 CORS 響應的最長時間,單位是秒。默認爲 600,一般也很少指定
    # max_age=1000
)

r = redis.StrictRedis(host="localhost", port=6379, db=0)
def run(name,cookies):
    xmain(name,cookies)

@app.post("/start_bilibili")
async def root(name: str, cookies: str, background_tasks: BackgroundTasks):
    # return input_name
    # r.set('input_name',str(input_name))
    background_tasks.add_task(run, name, cookies)
    return "start"

# return r.mget('KEYWORD_LIST','START_DATE','END_DATE')
@app.post("/bilibili/status")
async def root(input_name:str):
    return input_name
    #return r.mget("is_ok", "KEYWORD_LIST", "START_DATE", "END_DATE")
    #return r.mget("is_done","input_name")

# 在最下面加上 這一句
if __name__ == "__main__":
    uvicorn.run(app='bili_api_text:app', host="0.0.0.0", port=8050, reload=True, debug=True)

  • 核心就是引入CORSMiddleware的包
app = FastAPI()  # 創建API實例
app.add_middleware(
    CORSMiddleware,
    # 允許跨域的源列表,例如 ["http://www.example.org"] 等等,["*"] 表示允許任何源
    allow_origins=["*"],
    # 跨域請求是否支持 cookie,默認是 False,如果爲 True,allow_origins 必須爲具體的源,不可以是 ["*"]
    allow_credentials=False,
    # 允許跨域請求的 HTTP 方法列表,默認是 ["GET"]
    allow_methods=["*"],
    # 允許跨域請求的 HTTP 請求頭列表,默認是 [],可以使用 ["*"] 表示允許所有的請求頭
    # 當然 Accept、Accept-Language、Content-Language 以及 Content-Type 總之被允許的
    allow_headers=["*"],
    # 可以被瀏覽器訪問的響應頭, 默認是 [],一般很少指定
    # expose_headers=["*"]
    # 設定瀏覽器緩存 CORS 響應的最長時間,單位是秒。默認爲 600,一般也很少指定
    # max_age=1000
)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章