跨域问题,写在中间件中

2023-05-06,,


跨域问题:

-同源策略(浏览器的安全策略)

-只允许当前页面朝当前域下发请求,如果向其他域发请求,请求可以正常发送,数据也可以拿回,但是被浏览器拦截了

-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中配置中间件

《跨域问题,写在中间件中.doc》

下载本文的Word格式文档,以方便收藏与打印。