1. 程式人生 > >解決 axios 跨域時,傳送 post 請求變 options 的問題

解決 axios 跨域時,傳送 post 請求變 options 的問題

前端:VUE

後端:django

前後端除錯時post請求,發現請求方式為options,服務端不接受,後查詢發現遇到大名鼎鼎的跨域問題。

跨域:協議、ip、埠只要前後端有一個不一樣就會出現跨域問題。瀏覽器會嘗試向後端傳送option請求->想後端詢問是否支援從前端的這個域名發起跨域請求,後端返回allow。

解決方式:

1、安裝

pip install django-cors-headers

2、新增應用

INSTALLED_APPS = (
    ...
    'corsheaders',
    ...
)

3、中間層設定

MIDDLEWARE = [
    'corsheaders.middleware.CorsMiddleware',
    ...
]

4、新增白名單

CORS_ORIGIN_WHITELIST = (
    '127.0.0.1:8080',
    'localhost:8080',
)
CORS_ALLOW_CREDENTIALS = True  # 允許攜帶cookie