Django跨域请求无法传递Cookie的解决
问题
在使用 Django + Vue 进行前后端分离开发时,发现在跨域访问情况下,后台 HttpResponse 在使用 set_cookie 方法后,浏览器无法获取 Cookie。
解决方法
Django 端使用 django-cors-headers 解决跨域问题,修改 settings.py 文件。
具体方案:
Flask和Django中解决跨域请求问题
对 axios 进行设置,允许浏览器设置或获取Cookie。
axios.defaults.withCredentials = true;
Django 之 Cookie 操作
from django.http import HttpResponse # 设置 Cookie response = HttpResponse('OK') response.set_cookie('key', 'value') # 获取 Cookie request.COOKIES['key'] request.COOKIES.get['key'] # 删除 Cookie response.delete_cookie('key')
补充:【解决方案】前后端分离之后,请求跨域无法传递cookie的问题
前端关键代码:
如图,在请求上加个 withCredentials: true 即可。
当然,这只是前端打开一个开口而已,后端做的事情可就多了。
如图,后端服务在进行跨域处理的时候,需要将 Access-Control-Allow-Credentials 设为 true 即可。
原理:
以上前后端设置的ture属性(withCredentials、Access-Control-Allow-Credentials),都是允许跨域发送cookie的一个开关设置,需要前后端都做到打开模式。
以上为个人经验,希望能给大家一个参考,也希望大家多多支持我们。如有错误或未考虑完全的地方,望不吝赐教。
相关推荐
-
Django跨域请求CSRF的方法示例
web跨域请求 1.为什么要有跨域限制 举个例子: 1.用户登录了自己的银行页面 http://mybank.com,http://mybank.com向用户的cookie中添加用户标识. 2.用户浏览了恶意页面 http://evil.com.执行了页面中的恶意AJAX请求代码. 3.http://evil.com向http://mybank.com发起AJAX HTTP请求,请求会默认把http://mybank.com对应cookie也同时发送过去. 4.银行页面从发送的cookie中提取
-
简单了解django处理跨域请求最佳解决方案
一.什么是跨域请求 跨域: 简单来说就是 A 网站的 javascript 代码试图访问 B 网站,包括提交内容和获取内容.这显然是不安全的.为此,浏览器的鼻祖:网景(Netscape)公司提出了优秀的解决方案:著名的浏览器同源策略.现在所有支持JavaScript的浏览器都会使用这个策略. 同源:域名.协议.端口均相同的网站即为同源. 流程: 当一个浏览器的两个Tab页分别打开百度和谷歌页面时,百度发起一个脚本执行,此时浏览器会检查该脚本属于哪个页面.即检查是否同源.只有和百度同源的脚本才会被
-
django解决跨域请求的问题
解决方案 1.安装django-cors-headers pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASSES = ( ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # 注意顺序 ... ) #
-
django解决跨域请求的问题详解
解决方案 1.安装django-cors-headers pip install django-cors-headers 2.配置settings.py文件 INSTALLED_APPS = [ ... 'corsheaders', ... ] MIDDLEWARE_CLASSES = ( ... 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', # 注意顺序 ... ) #
-
使用Flask和Django中解决跨域请求问题
Flask解决跨域 1.下载flask_cors包 pip install flask-cors 2.使用flask_cors的CORS 代码示例 from flask_cors import * app = Flask(__name__) CORS(app, supports_credentials=True) Flask-CORS文档: https://flask-cors.readthedocs.io/en/latest/ Django解决跨域 1.安装django-cors-header
-
Django+uni-app实现数据通信中的请求跨域的示例代码
前后端分离的模式下,后端使用Django RestFramework,前端使用uni-app来进行APP的开发. 前端代码: Django后端跨域配置 settings.py配置文件中添加: INSTALLED_APPS = [ 'corsheaders', ] 中间件中添加 'corsheaders.middleware.CorsMiddleware', # 注意顺序 一定是在common中间件的前面 MIDDLEWARE = [ # 'accounts.MyCsrfMiddleware.CO
-
django基于cors解决跨域请求问题详解
一 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现 请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同. 比如:我在本地上的域名是127.0.0.1:8000,请求另外一个域名:127.0.0.1:8001一段数据 浏览器上就会报错,这个就是同源策略的保护,如果浏览器对javas
-
Django中使用CORS实现跨域请求过程解析
跨域请求: 请求url包含协议.网址.端口,任何一种不同都是跨域请求. 1.安装cors模块 pip install django-cors-headers 2.添加应用 INSTALLED_APPS = ( ... 'corsheaders', ... ) 3.设置中间件 MIDDLEWARE = [ 'corsheaders.middleware.CorsMiddleware', ... ] 4.添加允许访问的白名单,凡是出现在白名单的域名都可以访问后端接口 # CORS CORS_ORIG
-
Django跨域请求原理及实现代码
一 同源策略 同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响.可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现 请求的url地址,必须与浏览器上的url地址处于同域上,也就是域名,端口,协议相同. 比如:我在本地上的域名是127.0.0.1:8000,请求另外一个域名:127.0.0.1:8001一段数据 浏览器上就会报错,个就是同源策略的保护,如果浏览器对javasc
-
Django实现跨域请求过程详解
前言 CORS 即 Cross Origin Resource Sharing 跨域资源共享. 跨域请求分两种:简单请求.复杂请求. 简单请求 简单请求必须满足下述条件. HTTP方法为这三种方法之一:HEAD.GET.POST HTTP头消息不超出以下字段: Accept.Accept-Language.Content-Language.Last-Event-ID 且Content-Type只能为下列类型中的某一个: application/x-www-from-urlencoded mult
随机推荐
- angularJS之$http:与服务器交互示例
- SQLite数据库管理相关命令的使用介绍
- jQuery鼠标悬停内容动画切换效果
- jquery ajax学习笔记2 使用XMLHttpRequest对象的responseXML
- Java实现文件或文件夹的复制到指定目录实例
- js显示时间 js显示最后修改时间
- 简单时间提示DEMO从0开始一直进行计时
- thinkphp实现发送邮件密码找回功能实例
- php实现计数器方法小结
- 浅谈js控制li标签排序问题 js调用php函数的方法
- js排序与重组的实例讲解
- java 使用线程监控文件目录变化的实现方法
- sqlserver登陆后报不能为空不能为null的错误
- 评估你的域名值多少钱
- Sql Server临时表和游标的使用小结
- Flex与.NET互操作 了解FluorineFx的环境配置(远程对象、网关、通道、目的地)
- 了解在Flash中的编程工作第1/4页
- 服务器安全设置之-本地安全策略设置
- 用C++实现一个链式栈的实例代码
- Java线程中start和run方法全面解析