解决ajax跨域问题

js跨域问题已经不用再描述了,简单地说,就是无法访问异域的资源,有些浏览器会因此提示说是没有相应的权限,或是不允许访问该地址的错误信息。这个挺让人讨厌的,但是这种需求又多。之前自己也遇到过,也解决过,但是再遇到的时候,又不能访问了,无语。

现在我又发现了一种新的方式,具体是这样的:

首先,虽然浏览器限制这样的跨域动作,但是却允许在script标签中加载执行跨域的js,而且还可以动态地创建该标签,隐藏利用这一点,可以在请求的地址后面加上回调的函数即可接收服务器数据(这是关键点)。

比如: 

请求的地址:http://192.168.10.57:8088/course2.2/test

那么改装后的地址:http://192.168.10.57:8088/course2.2/test?callback=getData

其中:getData为getData(data) {},data就是后台数据。

代码:

1     var script = document.createElement('script');  
2     script.setAttribute('src', url); //url: http://xxx.xxx.xxx?callback=getData
3     document.getElementsByTagName('head')[0].appendChild(script);
posted @ 2012-07-30 17:14  bilipan  阅读(144)  评论(0编辑  收藏  举报