我需要通过Ajax向远程域发出POST请求,我知道Same-Origin Policy的限制,但我读过,有可能在服务器上的PHP中建立网桥以转发请求。
事实是我不知道如何编写此桥,也无法在Google上找到信息。 我想我需要使用CURL。
有人可以解释一下我怎么写吗?
如果需要代理服务器或“ Bridge ”,则可以尝试以下操作:您可以实现对该PHP脚本的简单AJAX调用,并将该POST重定向到所需的其他服务器。
这个怎么运作:
请记住首先 放置一些服务器身份验证方法 ,因为在示例中我没有编写 任何 方法 ,否则该页面将是一台不错的 垃圾邮件机器
编辑:我的意思是使用您的服务器向目标服务器提交故障请求。 无论如何,为您的用户添加一些简单的身份验证还不错:)
<?php /* You might want some authentication here */ /* check authentication */ /* Authentication ended. */ $url = 'http://target.com/api'; //Edit your target here foreach($_GET as $getname => $getvar) { $fields[$getname] = urlencode($getvar); //for proxying get request to POST. } foreach($_POST as $postname => $postvar) { $fields[$postname ] = urlencode($postvar); //for proxying POST requests. } //url-ify the data for the POST foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; } rtrim($fields_string, '&'); //open connection $ch = curl_init(); //set the url, number of POST vars, POST data curl_setopt($ch,CURLOPT_URL, $url); curl_setopt($ch,CURLOPT_POST, count($fields)); curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string); //execute post $result = curl_exec($ch); //close connection curl_close($ch);
我假设您已经知道发送POST ajax请求的方式。如果不是,请尝试阅读 http://www.openjs.com/scripts/jx/jx.php