解决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);