jQuery和Ajax的远程POST请求
我需要通过Ajax向远程域发出POST请求,我知道Same-Origin Policy的限制,但我读过,有可能在服务器上的PHP中建立网桥以转发请求。
事实是我不知道如何编写此桥,也无法在Google上找到信息。
我想我需要使用CURL。
有人可以解释一下我怎么写吗?
回答:
如果需要代理服务器或“ ”,则可以尝试以下操作:您可以实现对该PHP脚本的简单AJAX调用,并将该POST重定向到所需的其他服务器。
这个怎么运作:
- 创建Proxy.php并粘贴内容。
- 使页面最初发送请求以将AJAX请求发送到proxy.php而不是目标服务器。
- 该请求将被重定向到目标服务器。
- 如果需要结果,可以选择设置选项 。
请记住首先 ,因为在示例中我没有编写 ,否则该页面将是一台不错的 垃圾邮件机器
编辑:我的意思是使用您的服务器向目标服务器提交故障请求。 无论如何,为您的用户添加一些简单的身份验证还不错:)
回答:
<?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
以上是 jQuery和Ajax的远程POST请求 的全部内容, 来源链接: utcz.com/qa/420721.html