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
作者: Deaseyy
出处: http://www.cnblogs.com/Deaseyy/
新手一枚,请大佬们多多赐教!
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出, 原文链接