5

我想使用 PHP(可能需要 JS)制作一个脚本来将 POST 数据发送到另一个网页并取回结果。

例如,域 A 将有一个带有文本框和提交按钮的表单,域 B 将有一个脚本,它将填充文本框并按下提交按钮并返回生成的 HTML 页面。

4

3 回答 3

6

以下代码行可以写在另一个 php 脚本上,

//set POST variables
$url = 'the website from which you need data through post';
$fields = array(
            //post parameters to be sent to the other website
            'text'=>urlencode($_POST['text']), //the post request you send to this  script from your domain.
        );

//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);

现在 $result 将包含从其他网站收到的文本。

于 2012-06-14T09:47:08.720 回答
1

用 JS:出于安全原因,没有。阅读同源政策

使用 PHP,您可以做任何您想做的事,包括POST连接其他服务器。例如使用CURL

于 2012-06-14T09:34:40.813 回答
-1

--- 2012 年原始答案 ---

使用jQuery;只需使用 $.ajax() 调用加载页面。如果需要,您可以使用“jsonp”,它可以解决来自不同域的调用页面之间的限制。

使用 javascript 的好处是您不需要任何服务器端语言。

--- 2018 年编辑 ---

我现在意识到您不能使用 jsonp 进行 POST(因为它本质上是只读的)所以这只有在网站接受表单作为 GET(即 URL 中的参数)时才有效。否则,最好按照其他答案中的建议使用 Curl 或类似方法。

于 2012-08-23T08:56:29.007 回答