绕过ajax';同一原产地政策';,PHP ajax请求转发器的代码?
我希望在我的站点上有一个基本上类似于JSON代理的php页面,从而绕过ajax同源策略。例如,我提出如下ajax请求:绕过ajax';同一原产地政策';,PHP ajax请求转发器的代码?,php,javascript,ajax,same-origin-policy,Php,Javascript,Ajax,Same Origin Policy,我希望在我的站点上有一个基本上类似于JSON代理的php页面,从而绕过ajax同源策略。例如,我提出如下ajax请求: mysite.com/myproxy.php?url=blah.com/api.json&a=1&b=2 然后,它请求: blah.com/api.json?a=1&b=2 并将JSON(或任何内容)结果返回给原始请求者。 现在,如果我写了这段php代码(加上我不懂php!),我想我会愚蠢地重新发明轮子——有没有一些预先存在的代码可以做到这一点?我肯
mysite.com/myproxy.php?url=blah.com/api.json&a=1&b=2
然后,它请求:
blah.com/api.json?a=1&b=2
并将JSON(或任何内容)结果返回给原始请求者。
现在,如果我写了这段php代码(加上我不懂php!),我想我会愚蠢地重新发明轮子——有没有一些预先存在的代码可以做到这一点?我肯定我不是唯一一个反对同一原产地政策的人
哦,是的,JSONP不是这个特定api的选项
谢谢大家好的,有件事-
将其放入php脚本中,如下调用
script.php?url=blah
将要发布的内容发布到服务器
<?php
$curlPost = http_build_query($_POST);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_GET['url']);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost);
$data = curl_exec($ch);
curl_close($ch);
echo json_encode($data);
?>
你错过了curl_exec的$ch参数。。。花了一段时间才弄明白!很好,谢谢。这只是为了开发工作,所以安全性不应该太重要。再次感谢
$whitelist = array('http://www.google.com','http://www.ajax.com');
$list = array();
foreach($whitelist as $w)
$list[] = parse_url($w,PHP_URL_HOST);
$url = $_GET['url'];
$url = pathinfo($url,PHP_URL_HOST);
if(!in_array($url, $list)) die('no access to that domain');