Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
XMLHttpRequest将XML发送到PHP服务器_Php_Javascript_Xml_Post_Xmlhttprequest - Fatal编程技术网

XMLHttpRequest将XML发送到PHP服务器

XMLHttpRequest将XML发送到PHP服务器,php,javascript,xml,post,xmlhttprequest,Php,Javascript,Xml,Post,Xmlhttprequest,我想知道是否可以将一些数据以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

我想知道是否可以将一些数据以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);
    }
}
file_get_contents('php://input');
因为在我必须发送到服务器端的信息中,它包含了一些文本,而且它似乎不太适合MIME:

xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
但是当我在服务器端时,我检查了$\u POST,但里面什么都没有,对$\u请求也是如此

最后,我想知道是否有可能使用XMLHttpRequest将XML数据发送到服务器端PHP


谢谢

客户端没有问题,但是
$\u POST
包含一组经过解析的键/值对,但这不是发送到服务器的内容。使用类似以下内容:

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);
    }
}
file_get_contents('php://input');

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

$\u如果您不以application/x-www-form-urlencoded的形式发送数据,则POST将为空

你试过这个吗

$xml = file_get_contents("php://input");
这样,您将以原始格式捕获数据,并根据使用的mime类型对其进行解释