欧美人与禽2O2O性论交,秋霞免费视频,国产美女视频免费观看网址,国产成人亚洲综合网色欲网

用CORS 解決vue.js django跨域調(diào)用(vueresource跨域請求cors)

1 什么是 CORS?

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

2 什么是跨域

如果在A網(wǎng)站中,我們希望使用Ajax來獲得B網(wǎng)站中的特定內(nèi)容

如果A網(wǎng)站與B網(wǎng)站不在同一個域中,那么就出現(xiàn)了跨域訪問問題.

由于瀏覽器同源策略,凡是發(fā)送請求url的協(xié)議、域名、端口三者之間任意一與當(dāng)前頁面地址不同即為跨域。具體可以查看下表(來源)

[站外圖片上傳中……(1)]

3 問題

在 django 和vue.js 的一個項目中,做RESTFUL接口遇到跨域問題,在同一個主域名下,子域名不同, 用get方式可以成功訪問,用post方式訪問報跨域錯誤,無法訪問

網(wǎng)上查到的 jsonp解決方法問題在于只支持 GET方法,無法支持POST。

4 解決方法

通過在服務(wù)器端引入cors解決跨域問題,形成和vue.js聯(lián)合使用

cors原文地址

引入 django-cors-middleware

pip install django-cors-middleware

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

INSTALLED_APPS = (

\’corsheaders\’,

)

添加 中間件 監(jiān)聽

MIDDLEWARE = [

\’corsheaders.middleware.CorsMiddleware\’,

\’django.middleware.common.CommonMiddleware\’,

]

配置允許跨域訪問的域名

CORS_ORIGIN_ALLOW_ALL = False

CORS_ORIGIN_WHITELIST = (

\’google.com\’,

\’hostname.example.com\’

)

默認(rèn)值是全部:

CORS_ORIGIN_WHITELIST = ()

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

CORS_ORIGIN_REGEX_WHITELIST = (\’^(https?://)?(w .)?>google.com$\’, )

默認(rèn)值:

CORS_ORIGIN_REGEX_WHITELIST = ()

設(shè)置允許訪問的方法:

CORS_ALLOW_METHODS = (

\’GET\’,

\’POST\’,

\’PUT\’,

\’PATCH\’,

\’DELETE\’,

\’OPTIONS\’

)

設(shè)置允許的header:

默認(rèn)值:

CORS_ALLOW_HEADERS = (

\’x-requested-with\’,

\’content-type\’,

\’accept\’,

\’origin\’,

\’authorization\’,

\’x-csrftoken\’

)

相關(guān)新聞

聯(lián)系我們
聯(lián)系我們
公眾號
公眾號
在線咨詢
分享本頁
返回頂部