jQuery和Ajax的远程POST请求

我需要通过Ajax向远程域发出POST请求,我知道Same-Origin Policy的限制,但我读过,有可能在服务器上的PHP中建立网桥以转发请求。

事实是我不知道如何编写此桥,也无法在Google上找到信息。

我想我需要使用CURL。

有人可以解释一下我怎么写吗?

回答:

如果需要代理服务器或“ ”,则可以尝试以下操作:您可以实现对该PHP脚本的简单AJAX调用,并将该POST重定向到所需的其他服务器。

这个怎么运作:

  1. 创建Proxy.php并粘贴内容。
  2. 使页面最初发送请求以将AJAX请求发送到proxy.php而不是目标服务器。
  3. 该请求将被重定向到目标服务器。
  4. 如果需要结果,可以选择设置选项 。

请记住首先 ,因为在示例中我没有编写 ,否则该页面将是一台不错的 垃圾邮件机器

编辑:我的意思是使用您的服务器向目标服务器提交故障请求。 无论如何,为您的用户添加一些简单的身份验证还不错:)

回答:

<?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

回到顶部