如何能够从此脚本中发布和返回 Ajax


how to be able to ajax post and return from this script?

我很纠结于如何编辑这个脚本能够从jquery获取请求并将脚本返回的值返回给我?任何帮助都是最感激的?

我可以使用它从文件系统传递 xml 文件和 url 并获得我期望的回报,但真的希望能够将其用作 wsdl 服务的代理。

[编辑] 由于环境变化,我想使用以下脚本将我正在传递 xml 的 wsdl 服务返回的 xml 返回传递给我。当我从命令行执行此操作时,它工作正常 - 我只是不确定如何能够让脚本接受帖子,然后从服务调用返回 xml。

我从命令行使用脚本如下:

php file.php theurl <test.xml

^^ 哪个返回给我我想然后传递回前端的 xml

<?php
ini_set('display_errors', "1");
$url= $argv[1];
echo "url'n$url'n";
preg_match("/https?:'/'/([^'/]*)(.*)/", $url, $matches);
$host=$matches[1];
$request=$matches[2];
$mxml=fread(STDIN,65536);
$yt =curl_init();
$header =   "POST $request  HTTP/1.0'r'n";
$header .=  "Host: $host'r'n";
$header .=  "SoapAction:";
$header .=  "Content-Type: text/xml'r'n";
$header .=  "Content-Length: ".strlen($mxml)."'r'n";
$header .=  "Content-Transfer-Encoding: text'r'n";
$header .=  "Connection-Close: close'r'n'r'n";
echo "header'n$header'n";
$header .=  $mxml;
curl_setopt($yt, CURLOPT_SSL_VERIFYPEER,0);
curl_setopt($yt, CURLOPT_URL, $url);
curl_setopt($yt, CURLOPT_CUSTOMREQUEST, $header);
curl_setopt($yt, CURLOPT_RETURNTRANSFER, true);
$rxml=curl_exec($yt);
echo "sent'n$mxml'n";
echo "received'n$rxml'n";
echo curl_error($yt);
?>

支持它。抱歉忘记发布答案。希望能帮助别人:

<?php
$url = 'http://myURL';
$xmlpost = file_get_contents('php://input');
$header =   "POST $url  HTTP/1.0'r'n";
$header .=  "Host: myHOST'r'n";
$header .=  "SoapAction: ''";
$ch = curl_init();
//Set the URL
curl_setopt($ch, CURLOPT_URL, $url);
//Enable POST data
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $xmlpost);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $header);
//curl_exec automatically writes the data returned
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
$.post('path/to/php/', function(data)
{
    $('body').append('<div id="outputs"></div>');
    $('#outputs').html($(data).find('name_of_xml_node').text());
}, 'xml');

也许......不能保证这个,至少可能有一些示例数据......而且这将是更多的示例,而不是实际上基于你获得的XML数据。

此外,您希望PHP仅输出XML,而没有额外的字符串或其他类似的东西,这可能会破坏XML的格式。