0

クライアント側 (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 を使用してサーバー側の PHP に XML データを送信することさえ可能かどうか疑問に思いました。

ありがとう!

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 に答える