同源策略跨域请求解决方案(Django框架为例)

网友投稿 671 2022-05-29

1.浏览器的同源策略

同源策略是浏览器的一个安全功能,不同源的客户端脚本(js文件)在没有明确授权的情况下,不能读写对方资源。只有同一个源的脚本赋予dom、读写cookie、session、ajax等操作的权限。 所以xyz.com下的js脚本采用ajax读取abc.com里面的文件数据是会被拒绝的。

另外同源策略只对网页的HTML文档做了限制,对加载的其他静态资源如javascript、css、图片等仍然认为属于同源。

同源策略限制了从同一个源加载的文档或脚本如何与来自另一个源的资源进行交互。这是一个用于隔离潜在恶意文件的重要安全机制。

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

举例来说,http://www.example.com/dir/page.html这个网址,协议是http://,域名是www.example.com,端口是80(默认端口可以省略)。它的同源情况如下。

1. 同源策略的目的,是为了保证用户信息的安全,防止恶意的网站窃取数据。 2.页面中的链接,重定向以及表单提交是不会受到同源策略限制的。 3.跨域资源的引入是可以的。但是js不能读写加载的内容。如嵌入到页面中的