如何使用PHP接收XMLHttpRequest?
我希望能够阅读发送到PHP页面的XMLHttpRequest。我正在使用prototype的Ajax.Request函数,并发送一个简单的XML结构 当试图在PHP页面上打印POST数组时,我没有得到任何输出 谢谢你的帮助 编辑:下面是我的代码如何使用PHP接收XMLHttpRequest?,php,xml,ajax,xmlhttprequest,prototypejs,Php,Xml,Ajax,Xmlhttprequest,Prototypejs,我希望能够阅读发送到PHP页面的XMLHttpRequest。我正在使用prototype的Ajax.Request函数,并发送一个简单的XML结构 当试图在PHP页面上打印POST数组时,我没有得到任何输出 谢谢你的帮助 编辑:下面是我的代码 <html> <head> <SCRIPT type="text/javascript" src="prototype.js"></script> </head> <body>
<html>
<head>
<SCRIPT type="text/javascript" src="prototype.js"></script>
</head>
<body>
<script type="text/javascript">
var xml='<?xml version=1.0 encoding=UTF-8?>';
xml=xml+'<notification>';
xml=xml+'heya there';
xml=xml+'</notification>';
xml=xml+'</xml>';
var myAjax = new Ajax.Request('http://localhost:8080/post2.php',{
contentType: 'text/xml',
parameters: xml,
method: 'post',
onSuccess: function(transport){ alert(transport.status); alert(transport.responseText); }
});
</script>
</body>
</html>
var xml='';
xml=xml+“”;
xml=xml+“你好”;
xml=xml+“”;
xml=xml+“”;
var myAjax=new Ajax.Request('http://localhost:8080/post2.php',{
contentType:'text/xml',
参数:xml,
方法:“post”,
onSuccess:function(transport){alert(transport.status);alert(transport.responseText);}
});
post2.php
Welcome <?php print_r($_POST); ?>!<br />
欢迎
您可以使用输入://
包装器或。您将以读取普通请求变量的方式读取它
$\u GET['varname']
和$\u POST['varname']
当您使用“方法:POST”并希望发送帖子正文时,需要参数postBody。所以类似的方法可能会奏效:
var myAjax = new Ajax.Request('http://localhost:8080/post2.php',{
contentType: 'text/xml',
postBody: xml,
method: 'post',
onSuccess: function(transport){
alert(transport.status); alert(transport.responseText);
}
});
但是为什么要围绕内容构建XML文档呢?您可以简单地发送带有postBody的消息“heyathere”,而不使用XML
编辑:在这里可以找到所有Ajax。请求选项:php://input 允许您读取原始POST数据,如
Welcome <?php print(file_get_contents('php://input')); ?>!<br />
欢迎
注:php://input 不适用于enctype=“多部分/表单数据” 除非我做错了什么,否则当我打印\u r$\u POST时,我只会得到一个空数组。在我的ajax调用中,我的参数应该是格式为“…”的xml字符串,对吗?谢谢您的输入。您可以尝试
打印($\u GET)
,只是想看看它是否通过GET发送。比如@Adrian,我得到了一个空字符串。谢谢您的回复,请查看上面的代码编辑。这样您就得到了欢迎数组()!结果呢?是的,约瑟夫,这正是我得到的。我希望能找回xml。由于我被迫使用的服务器,这需要是文本/xml内容类型。Col所指的是:直接从文档中可以看出,“警告:此功能在PHP5.6.0中被弃用,并从PHP7.0.0起被删除。”$rawData=file_get_contents('php://input'); // 完美投票:)