跨域問題,寫在中介軟體中
阿新 • • 發佈:2019-01-07
跨域問題:
-同源策略(瀏覽器的安全策略)
-只允許當前頁面朝當前域下發請求,如果向其他域發請求,請求可以正常傳送,資料也可以拿回,但是被瀏覽器攔截了
-cors#跨域資源共享:只要伺服器實現了CORS,就可以實現跨域資源共享
-簡單請求
-只發一次請求:HEAD,GET,POST
-非簡單請求:POST指定傳送資料的格式為json
-發兩次請求:一次預檢(OPTION請求),只有服務端允許發請求,才能繼續發第二次正常請求,一次真正的請求
-服務端如何處理:
-寫在中介軟體中:
from django.utils.deprecation import MiddlewareMixin class MyCorsMiddle(MiddlewareMixin): def process_response(self,request,response): # 簡單請求: # 允許http://127.0.0.1:8001域向我發請求 # ret['Access-Control-Allow-Origin']='http://127.0.0.1:8001' # 允許所有人向我發請求 response['Access-Control-Allow-Origin'] = '*' if request.method == 'OPTIONS': # 所有的頭資訊都允許 response['Access-Control-Allow-Headers'] = '*' return response
-在setting中配置中介軟體