跨域及其(django跨域请求后台解决方案)
程序员文章站
2024-02-18 16:54:41
...
1. 跨域的产生
作为一名前端开发人员,相信大家都知道跨域是因为浏览器的同源策略所导致的。所谓同源是指"协议+域名+端口"三者相同,即便两个不同的域名指向同一个ip地址,也非同源。
什么是域名?
www.wikipedia.org是一个域名,和IP地址208.80.152.2相对应。
下面给出跨域示例:
当前页面url | 被请求页面url | 是否跨域 | 原因 |
---|---|---|---|
http://www.test.com/ | http://www.test.com/index.html | 否 | 同源(协议、域名、端口号相同) |
http://www.test.com/ | https://www.test.com/index.html | 跨域 | 协议不同(http/https) |
http://www.test.com/ | http://www.baidu.com/ | 跨域 | 主域名不同(test/baidu) |
http://www.test.com/ | http://blog.test.com/ | 跨域 | 子域名不同(www/blog) |
http://www.test.com:8080/ | http://www.test.com:7001/ | 跨域 | 端口号不同(8080/7001) |
浏览器引入同源策略主要是为了防止XSS,CSRF攻击**.。
CSRF(Cross-site request forgery),跨站请求伪造,也被称为:one click attack/session riding,缩写为:CSRF/XSRF。
在同源策略影响下,域名A向域名B发送Ajax请求,或操作Cookie、LocalStorage、indexDB等数据,或操作dom,js就会受到限制,但请求css,js,图片等静态资源不受限制。
2.常见跨域问题及解决方式
参考链接:传送门
3.django跨域请求后台解决方案
参考文章:django开发+vue开发需要考虑跨域请求问题
django跨域请求后台解决方案:
安装:
pip install django-cors-headers
具体安装配置见:github