Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
绕过ajax';同一原产地政策';,PHP ajax请求转发器的代码?_Php_Javascript_Ajax_Same Origin Policy - Fatal编程技术网

绕过ajax';同一原产地政策';,PHP 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!),我想我会愚蠢地重新发明轮子——有没有一些预先存在的代码可以做到这一点?我肯

我希望在我的站点上有一个基本上类似于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!),我想我会愚蠢地重新发明轮子——有没有一些预先存在的代码可以做到这一点?我肯定我不是唯一一个反对同一原产地政策的人

哦,是的,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');