zoukankan      html  css  js  c++  java
  • 跨域问题

    跨域问题

    1.出现跨域问题的原因

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

    2.解决跨域问题

    -cors:只要服务器实现了CORS,就可以实现跨域资源共享
    -简单请求
    	-只发一次请求
    -非简单请求:
    	-发两次请求:一次预检(OPTION请求),只有服务端允许发请求,才能继续发第二次正常请求,一次真正的请求
    

    代码实现:

    写一个中间件在中间件允许cors,如此就解决了全站的跨域问题

    原理:根据django的请求的生命周期,所有的请求都会先经过中间件,所以在中间件中允许cors也就解决了跨域问题

    1.写一个中间件交myMiddle.py

    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
    

    2.在setting中注册myMiddle.py

    MIDDLEWARE = [
        'api01.myMiddle.MyCorsMiddle'
    ]
    
  • 相关阅读:
    连续多步骤业务流程的暂停、中断和恢复
    什么是XML
    泛型擦除和反射配置文件
    类加载器和反射
    网络安全协议(二)
    网络通信协议(一)
    多线程之线程安全
    JAVA之线程池
    JAVA之多线程
    2020/8/1 JAVA之IO流(四)
  • 原文地址:https://www.cnblogs.com/jianhaozhou/p/10156316.html
Copyright © 2011-2022 走看看