zoukankan      html  css  js  c++  java
  • django之vue跨域请求

    前言--跨域请求

    前端对Cross-Origin Resource Sharing 问题(CORS,中文又称'跨域')应该很熟悉了。众所周知出于安全的考虑,浏览器有个同源策略,对于不同源的站点之间的相互请求会做限制(跨域限制是浏览器行为,不是服务器行为。)。

    跨域一句话的理解就是:服务端和请求端的地址不一样。

    1.同源策略

    同源指的是域名(或IP),协议,端口都相同。 不同源的客户端脚本(javascript、ActionScript)在没明确授权的情况下,不能读写对方的资源。

     

    3. 服务器运行跨域配置

    3.1 安装 django-cors-headers

    pip install django-cors-headers

    3.2 添加到已安装的应用程序中

    INSTALLED_APPS  =(
         ... 
        ' corsheaders ',
         ... 
    )

    3.3 添加中间件类来收听响应

     

    MIDDLEWARE  = [
        ... 
        # 跨域请求中间件
        'corsheaders.middleware.CorsMiddleware', // 放在此位置 ,默认中间件中第三的位置
        ' django.middleware.common.CommonMiddleware',
         ... 
    ]
    
    

    3.4 跨域配置

    # 跨域允许的请求方式,可以使用默认值
    # 1.默认的请求方式为:
    # from corsheaders.defaults import default_methods
    # CORS_ALLOW_METHODS = default_methods  //应该是默认全部请求方式
    # 2.自定义
    CORS_ALLOW_METHODS = (
        'GET',
        'POST',
        'PUT',
        'PATCH',
        'DELETE',
        'OPTIONS'
    )
    ​
    # 允许跨域的请求头,可以使用默认值,默认的请求头为:
    # from corsheaders.defaults import default_headers
    # CORS_ALLOW_HEADERS = default_headers
    #自定义
    CORS_ALLOW_HEADERS = (
        'XMLHttpRequest',
        'X_FILENAME',
        'accept-encoding',
        'authorization',
        'content-type',
        'dnt',
        'origin',
        'user-agent',
        'x-csrftoken',
        'x-requested-with',
        'Pragma',
    )
    ​
    # 跨域请求时,是否运行携带cookie,默认为False
    CORS_ALLOW_CREDENTIALS = True
    # 允许所有主机执行跨站点请求,默认为False
    # 如果没设置该参数,则必须设置白名单,运行部分白名单的主机才能执行跨站点请求
    CORS_ORIGIN_ALLOW_ALL = True

     

  • 相关阅读:
    【GO】GO开发环境安装及VS Code配置
    【计算机组成原理】第一章 计算机系统概论
    oracle 12.2新特性:sqlplus history
    取消交互式创建linux用户密码
    undo表空间收缩
    如何对undo表空间大小进行设置
    查看数据库实际使用多大内存
    Oracle 12.2Cgrid脚本安装失败软件完全删除
    有关rman备份ora-27192和ora-19511错误
    数据库altert日志中的GTX提示
  • 原文地址:https://www.cnblogs.com/Deaseyy/p/10903306.html
Copyright © 2011-2022 走看看