利用PHP实现AJAX跨域HTTP GET

AJAX要实现跨域HTTP GET/POST本身就是很麻烦的,具体方法就不详细说了.

我是比较懒的人,只要实现功能就好,我平时最常用的是用PHP的file_get_contents,把远程的HTTP直接get到本地的php, 这样就不存在跨域的问题了.不过这个方法就不是很全面的,一方面速度比较慢,中转了一次.另一方面file_get_contents只支持标准的 HTTP.最近我就遇到一个情况了,对方是用ipworks写的一个简单80端口的输出.没有完整的HTTP HEADER.用file_get_contents就一直报错.后来改用curl就正常了,还是curl功能强大点.当然我这个方法只能用作简单的 HTTP GET.

ajax.php代码节选

if($_GET['action']=="geturl"){$url=trim($_GET['url'])
//$content = file_get_contents($url,"r");
$ch=curl_init()
$timeout=5;
curl_setopt($ch,CURLOPT_URL,$url);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
$content=curl_exec($ch);
curl_close($ch);
echo $content;
exit;
}

js部分代码,当然是用jquery的

function ajaxopen(url){
$.ajax({
url:'cam.php?action=geturl&url='+url,;//通过php获取远程信息,解决ajax跨域问题
cache:false,
type:"get",
async:false,
success:function(str){
//alert('成功了:'+str);
},
error:function(str){
alert('读取错误');
}
});
}

例子比较的简单,但能起到启发作用。
300*300
 文章首页关于迷茫时代关于我写意人生
版权所有:迷茫时代 All rights reserved   
执行时间:0.00536 秒