首页 > 其他 > 详细

django之vue跨域请求

时间:2019-05-22 00:32:41      阅读:276      评论:0      收藏:0      [点我收藏+]

前言--跨域请求

前端对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

 

 

django之vue跨域请求

原文:https://www.cnblogs.com/Deaseyy/p/10903306.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!