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

     

  • 相关阅读:
    微信小程序开发常用方法
    HTML5 video常用属性
    移动端键盘定制
    移动端弹性滑动以及滑动出界解决方案
    vue移动端Ui组件 mint-ui 使用指南
    vue.js的ajax和jsonp请求
    获取用户地理位置
    如何将一个已有的项目托管到github或是码云上?git的配置
    mvvm模式和mvc模式 概述总结对比
    使用Java的BlockingQueue实现生产者-消费者
  • 原文地址:https://www.cnblogs.com/Deaseyy/p/10903306.html
Copyright © 2011-2022 走看看