我想知道是否可以将一些数据从我的客户端(使用 HTML5 画布的 2d 应用程序)以 XML 格式发送到服务器端?
我尝试了这样的事情:
function send_xml_data_to_server(xml, url) {
var xmlhttp = new XMLHttpRequest();
xmlhttp.open("POST", url, true);
xmlhttp.setRequestHeader('Content-Type', 'text/xml');
xmlhttp.send(xml);
xmlhttp.onreadystatechange = function() {
callback_response_from_server(xmlhttp);
}
}
因为在我必须发送到服务器端的信息中,它包含一些文本,并且似乎与 MIME 不太合适:
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
但是当我在服务器端时,我检查了 _POST 美元,但里面什么都没有,_REQUEST 美元也是如此。
所以,最后,我想知道是否可以使用 XMLHttpRequest 将 XML 数据发送到服务器端 PHP?
谢谢!
客户端没有任何问题,但$_POST
包含一组解析的键/值对,但这不是您发送到服务器的内容。使用类似这样的东西:
file_get_contents('php://input');
然后,您可以使用 SimpleXML 或任何您喜欢的内容来解析字符串。
如果您不将数据作为application/x-www-form-urlencoded发送,则$_POST将为空。
你试过这个吗?
$xml = file_get_contents("php://input");
这样,您将以原始格式捕获数据并根据使用的 MIME 类型对其进行解释。