2012-06-09 134 views
0

我想知道是否可以從我的客戶端(使用HTML5的畫布的2d應用程序)發送一些數據到服務器端的XML格式?XMLHttpRequest發送XML到PHP服務器

我想是這樣的:

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?

謝謝!

回答

1

客戶端沒有錯,但$_POST包含一組已解析的鍵/值對,但這不是您發送到服務器的內容。使用像這樣的:

file_get_contents('php://input'); 

然後,你可以使用SimpleXML或任何你喜歡的解析字符串。

1

如果您不發送數據爲application/x-www-form-urlencoded,$ _POST將爲空。

你嘗試過嗎?

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

這樣你將捕獲原始格式的數據並根據使用的MIME類型進行解釋。