浏览器的同源策略
同源策略(Same origin policy)是一种约定,它是浏览器最核心也最基本的安全功能,如果缺少了同源策略,则浏览器的正常功能可能都会受到影响。可以说Web是构建在同源策略基础之上的,浏览器只是针对同源策略的一种实现。
同源策略阻止从一个域上加载的脚本获取或操作另一个域上的文档属性。也就是说,受到请求的 URL 的域必须与当前 Web 页面的域相同。这意味着浏览器隔离来自不同源的内容,以防止它们之间的操作。
$url=file_get_contents($url);//返回网页的内容 把整个文件读入一个字符串中 该函数是用于把文件的内容读入到一个字符串中的首选方法。
解决跨域问题的方法
1、后端代理(后端不存在跨域)
2、flash+xml
3、jsonp
jsonp跨域
1、什么是JSONP?
JSONP(JSON with Padding)是一个非官方的协议,通过javascript callback的形式 实现跨域访问。
2、JSONP有什么用?
由于同源策略的限制,XmlHttpRequest只允许请求当前源(域名、协议、端口)的 资源,为了实现跨域请求,可以通过script标签实现跨域请求,然后在服务端输出JSON 数据并执行回调函数,从而解决了跨域的数据请求。
3、如何使用JSONP?
首先在客户端注册一个callback, 然后把callback的名字传给服务器。此时,服务器 先生成 json 数据。然后以 javascript 语法的方式,生成一个function , function 名字就是传递上来的参数.
jsonp.最后将 json 数据直接以入参的方式,放置到 function 中,这样就生成了一段 js 语法的文档,返回给客户端。
客户端浏览器,解析script标签,并执行返回的 javascript 文档,此时数据作为参数, 传入到了客户端预先定义好的callback 函数里.(动态执行回调函数)
get和post提交
1、约定函数名问题? 将函数名赋给一个变量,将变量传给后端。
2、script跨域具有事件行为? 在事件处理函数里面创建script,添加src属性 追加body底部