AJAX实现跨域的三种方法
三种方法:代理、JSONP、XHR2(XMLHttpRequest Level 2)
一、代理:
这种方式是通过服务器获取其他域名下的内容,然后再把获得内容返回到前端,这样因为在同一个域名下,所以就不会出现跨域的问题。
前台请求定位到本域名下的URL,然后该URL再通过程序,读取远程内容,PHP代码片段如下:
header("Content-type:text/html;charset=utf-8"); $url = "http://loaclhost:8081/proxy.js"; $contents = file_get_contents($url); echo $contents;
二、JSONP(该方式只适合GET请求):
前端请求如下URL:http://localhost:8080/jsonp.php?callbackname=callback
jsonp.php文件内容:
$callback = $_GET["callback"]; //回调函数名称 echo "$callback(".JSON数据格式.")";
三、XHR2(HTML5才支持):
HTML5提供的XMLHttpRequest Level 2已经实现了跨域访问以及其他的一些新功能
这需要在远程服务器端添加如下代码:
header('Access-Control-Allow-Origin:*'); //*代表可访问的地址,可以设置指定域名 header('Access-Control-Allow-Methods:POST,GET');