JS中的其他跨域技术

来源:互联网 发布:sql删除表数据 编辑:程序博客网 时间:2024/06/09 14:08
其它跨域技术:

 

  ① 图像ping

  与服务器进行简单、单向的跨域通信。请求的数据是通过查询字符串形式发送的,而响应可以是任意内容,但通常是像素图或204响应。通过图像ping,浏览器得不到任何具体的数据,但通过侦听load和error事件,能够知道响应是什么时候接收到的。

var img = new Image();img.load = img.onerror = function() {    alert("Done");}; img.src = "http://www.example.com/test?name=Carol";

  图像ping方法常用于跟踪用户点击页面或动态广告曝光次数。图像ping有两个主要的缺点,一是只能发送GET请求,二是无法访问服务器的响应文本。因此图像ping只能用于浏览器与服务器间的单向通信。


  ②JSONP

  JSON with padding,与json相比就是被包含在函数调用中的JSON

callback({"name":"carol"});

  JSONP由两部分组成:毁掉函数和数据。回调函数是当响应到来时应该在也页面中调用的函数。调用函数名字一般是在请求中指定。而数据就是传入回调函数中的JSON数据。JSONP是通过动态<script>元素来使用的,使用的时候可以为src属性指定一个跨域URL。

复制代码
function handleResponse(response) {    alert("you are at IP address" + response.ip + response.city);}var script = document.createElement("script");script.src = "http://freegeoip.net/json/?callback=handleResponse";document.body.insertbBefore(script,document.body.firseChild);
复制代码

  相比于图像ping,它的优点在于能够直接访问响应文本,支持浏览器与服务器之间双向通信。但是,跨域的不安全仍然存在。

0 0