0

我想知道是否可以将一些数据以 XML 格式从客户端(使用 HTML5 画布的 2d 应用程序)发送到服务器端?

我试过这样的事情:

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?

谢谢!

4

2 回答 2

1

客户端没有任何问题,但$_POST包含一组已解析的键/值对,但这不是您发送到服务器的内容。使用这样的东西:

file_get_contents('php://input');

然后,您可以使用 SimpleXML 或任何您喜欢的方式解析字符串。

于 2012-06-09T20:37:06.570 回答
1

如果您不将数据作为 application/x-www-form-urlencoded 发送,$_POST 将为空。

你试过这个吗?

$xml = file_get_contents("php://input");

这样,您将以原始格式捕获数据并根据使用的 mime 类型对其进行解释。

于 2012-06-09T20:37:16.490 回答