码迷,mamicode.com
首页 > 编程语言 > 详细

【Python-Django】浏览器同源策略

时间:2019-07-28 15:46:25      阅读:235      评论:0      收藏:0      [点我收藏+]

标签:访问   ssi   ade   lis   app   pre   span   组成   dom   

1995年,同源政策由 Netscape 公司引入浏览器。目前,所有浏览器都实行这个政策。

同源策略是浏览器的一个安全功能,不同源的客户端脚本(js文件)在没有明确授权的情况下,不能读写对方资源。只有同一个源的脚本赋予dom、读写cookie、session、ajax等操作的权限。

url由协议、域名、端口和路径组成,如果两个url的协议、域名和端口相同,则这两个url是同源的。

url是否同源原因
http://www.example.com/dir2/other.html 协议、端口、主机相同
https://example.com/dir/other.html 不同的协议(https)
http://www.example.com:81 端口不同(81)
http://news.example.com/ 域名不同

跨域CORS

现在,前端与后端分别是不同的端口,这就涉及到跨域访问数据的问题,因为浏览器的同源策略,默认是不支持两个不同域名间相互访问数据,而我们需要在两个域名间相互传递数据,这时我们就要为后端添加跨域访问的支持。

我们使用django-cors-headers来解决后端对跨域访问的支持。

使用django-cors-headers扩展

参考文档https://github.com/ottoyiu/django-cors-headers/

 

安装

pip install django-cors-headers

  

添加应用 在setting.py

INSTALLED_APPS = (
    ...
    ‘corsheaders‘,
    ...
)

  

中间层设置

MIDDLEWARE = [
    ‘corsheaders.middleware.CorsMiddleware‘,
    ...
]

  

添加白名单

# CORS
CORS_ORIGIN_WHITELIST = (
    ‘127.0.0.1:8080‘,
   ‘127.0.0.1:8000‘,
   ‘localhost:8080‘, ) CORS_ALLOW_CREDENTIALS = True # 允许携带cookie

  

  • 凡是出现在白名单中的域名,都可以访问后端接口
  • CORS_ALLOW_CREDENTIALS 指明在跨域访问中,后端是否支持对cookie的操作。

【Python-Django】浏览器同源策略

标签:访问   ssi   ade   lis   app   pre   span   组成   dom   

原文地址:https://www.cnblogs.com/LiuXinyu12378/p/11259081.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!