1. 程式人生 > >跨域問題,寫在中介軟體中

跨域問題,寫在中介軟體中


跨域問題:

-同源策略(瀏覽器的安全策略)

-只允許當前頁面朝當前域下發請求,如果向其他域發請求,請求可以正常傳送,資料也可以拿回,但是被瀏覽器攔截了

-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中配置中介軟體


image.png