1. 程式人生 > >用CORS 解決vue.js django跨域調用

用CORS 解決vue.js django跨域調用

監聽 網頁設計 訪問 eth 調用 http ati rsh 要求

Cross-Origin Resource Sharing(CORS)跨域資源共享是一份瀏覽器技術的規範,提供了 Web 服務從不同域傳來沙盒腳本的方法,以避開瀏覽器的同源策略,是 JSONP 模式的現代版。與 JSONP 不同,CORS 除了 GET 要求方法以外也支持其他的 HTTP 要求。用 CORS 可以讓網頁設計師用一般的 XMLHttpRequest,這種方式的錯誤處理比 JSONP 要來的好。另一方面,JSONP 可以在不支持 CORS 的老舊瀏覽器上運作。現代的瀏覽器都支持 CORS。

引入 django-cors-middleware

pip install django-cors-middleware

在 settings.py中添加,註意:不添加的話無法生效

INSTALLED_APPS = (
...
‘corsheaders‘,
)
添加 中間件 監聽

MIDDLEWARE = [
...
‘corsheaders.middleware.CorsMiddleware‘,
‘django.middleware.common.CommonMiddleware‘,
...
]
配置允許跨域訪問的域名

CORS_ORIGIN_ALLOW_ALL = False
CORS_ORIGIN_WHITELIST = (
‘google.com‘,
‘hostname.example.com‘
)
默認值是全部:

CORS_ORIGIN_WHITELIST = ()

或者定義允許的匹配路徑正則表達式.

CORS_ORIGIN_REGEX_WHITELIST = (‘^(https?://)?(\w+.)?>google.com$‘, )
默認值:

CORS_ORIGIN_REGEX_WHITELIST = ()
設置允許訪問的方法:

CORS_ALLOW_METHODS = (
‘GET‘,
‘POST‘,
‘PUT‘,
‘PATCH‘,
‘DELETE‘,
‘OPTIONS‘
)
設置允許的header:

默認值:

CORS_ALLOW_HEADERS = (
‘x-requested-with‘,
‘content-type‘,
‘accept‘,
‘origin‘,
‘authorization‘,

‘x-csrftoken‘
)

用CORS 解決vue.js django跨域調用