当前位置:首页 > 前端 > 正文内容

AJAX实现跨域的三种方法

Z先生9年前 (2016-03-29)前端13915

三种方法:代理、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');


标签: phpajax
分享给朋友:

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。