0

私はIE9とjquery-1.8.0.jsを使用しています。responseXML に不要な文字が追加されています。サーバーから送信される実際の XML は次のとおりです。

<?xml version="1.0" encoding="UTF-8" ?><ResponseStatus><version>0.0.1</version><requestURL>myurl.com</requestURL><statusCode>-1</statusCode><statusString>success</statusString></ResponseStatus>

しかし、responseText を確認すると、以下のように表示され、loadXML でエラーが発生しています。不要なスペースと \r\n- 文字が追加されていることに注意してください。

"  <?xml version=\"1.0\" encoding=\"UTF-8\" ?> \r\n- <ResponseStatus>\r\n  <version>0.0.1</version> \r\n  <requestURL>myurl.com</requestURL> \r\n  <statusCode>-1</statusCode> \r\n  <statusString>success</statusString> \r\n  </ResponseStatus>"

以下はコードスニペットです。

var options = 
{
    beforeSend:...
    error:...
    success: function (responseXML, statusText, xhr, $form)
             {
                var xmlobj = responseXML.documentElement.innerText;
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.loadXML(xmlobj);
                //xmlDoc.parseError.errorCode = -1072896682
                //xmldoc.reason = "Invalid at the top level of the document.\r\n"
             }
};

誰が XML を自動的に変更しているのか気になります。これを解決するためのガイダンスに感謝します。

ありがとう、JDP

4

1 に答える 1

0

誰が間に XML を改ざんしているのかについての正確な理由はわかりませんが、以下の関数を使用して XML をサニタイズし、問題を解決しました。

function sanitizeXML(xmlobj)
{
    "use strict";
    return xmlobj.replace("\r\n-","");
}

何か良い解決策があればよろしくお願いします。

于 2013-09-17T23:36:27.540 に答える