python之路 Cores解決跨域請求

2022-04-10 14:57:46 字數 2096 閱讀 2662

三、服務端解決跨域請求

上述我們介紹了如何在客戶端解決跨域請求問題,同樣我們可以在服務端進行設定處理,是否還記得在我們不做任何處理的時候,跨域請求時候瀏覽器給我們報的錯誤不?如下,翻譯過來就是因為相應頭沒有指定access-control-allow-origin所允許原始的請求路徑,因此原始請求路徑不被允許訪問。

基於上述的原因解釋,我們只需要在響應的內容加入上述這樣的授權字段,便可解決,例項如下:

專案1客戶端請求**:(路徑為:)

專案2服務端被請求的路徑:

如上方式,在服務端相應內容中加入response["access-control-allow-origin"]=""欄位後,路徑就可以跨域請求此路徑下的內容,如果將其設定成response["access-control-allow-origin"]="*"表示所有的客戶端都可以請求此伺服器下此路徑。

上述這種方式雖然在服務端解決了跨域請求的問題,但是通過上述設定方式,顯然不靈活,我們應該訪問路徑的實際情況進行判斷,然後再決定要不要給其跨域返回內容,解決辦法可以將伺服器**改為如下:

可以取得請求路徑的origin

ps:上述講述的都是基於get請求的情況,假如我們在客戶端利用put形式進行請求,因為put請求屬於上傳檔案的請求方式,而http協議對此請求方式未做驗證,即請求便能成功,顯然不合理,所以瀏覽器給給其增加了預檢,即put請求提交時,客戶端實際提交的請求方式為options,只有在服務端對其進行了驗證後,才會繼續提交正真put請求。上述的服務端跨域put形式請求可以改寫為如下:

def

send_ajax(request):

if request.method=="

options

":#預檢

python之路 集合

set集合是無序的,不能通過索引和切片來做一些操作 建立集合 n set hello print n 集合新增 刪除 1 新增 n set hello n.add onion print n 2 刪除 隨機刪除 n.pop 指定刪除 n.remove h 刪除元素不存在會報錯 n.discard m...

python之路 socketserver模組

通過socketserver模組實現套接字併發 基於tcp協議的套接字可以分為兩個階段 鏈結迴圈與通訊迴圈,與之對應的,socketserver模組中有兩個類,server類用於解決鏈結問題,request類用於解決通訊問題 server端 import json import struct imp...

Python學習之路

python 十分鐘入門 python 菜鳥教程 pycharm安裝numpy python 檔案讀取 with open xml path,r as fr content fr.read python讀取檔案時提示 unicodedecodeerror gbk codec can t decode...