Python 浏览器的同源策略及跨域解决方案
一、同源策略
1、一个源的定义
如果两个页面的协议,端口(如果有指定)和域名都相同,则两个页面具有相同的源。
举个例子:
下表给出了相对http://a.xyz.com/dir/page.html同源检测的示例:
2、同源策略是什么
同源策略是浏览器的一个安全功能,不同源的客户端脚本在没有明确授权的情况下,不能读写对方资源。所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。
同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。
3、不受同源策略限制的
1. 页面中的链接,重定向以及表单提交是不会受到同源策略限制的。
2. 跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的,,,
4、举个例子
我们手写两个Django demo:
1)、demo1
urls.py
urlpatterns = [ url(r'^abc/', views.abc), ]
views.py
def abc(request): return HttpResponse("rion")
2)、demo2
urls.py
urlpatterns = [ url(r'^xyz/', views.xyz), ]
views.py
def xyz(request): return render(request, "xyz.html")
xyz.html
不过我们通常都会将回调函数写在success回调中: