3

サーバー側 (Java) から xml 応答を取得しようとしています。Fiddlerをチェックインすると、ステータスコードとして200で期待どおりの応答が返されましたが、Jqueryポスト関数がエラーへの応答を送信して、「サーバーからxmlを取得中にエラーが発生しました」というアラートが表示されました。それはi18nの問題ですか?他の xml 応答を読み取って解析できます。この種の応答で同じことを行うにはどうすればよいですか

私のコード:

var jqxhr =$.post(redirectMainUrl+"globalaction.action", {
    sessiontoken: sessiontoken,
    action: "getFile",
    absFileName: file_path
},
function(xml1) {
    alert($(xml1).find("lastDayErrorLogs")
                 .children("log")
                 .children("logEvent")
                  .attr("message"));
})
.error(function() {
    if(jqxhr.responseText == 'INVALID_SESSION') {
        alert("Your Session has been timed out");
        window.location.replace(communities); 
    } else {
        alert("Error while getting xml from server");
        goToHomePage();
}
});

サーバーからの応答 (xml)

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="client.xsl"?>
<client version="1.0" >
      <product>
    <lastDayErrorLogs><log>

    <logEvent timestamp="2013-1-15_10:56:6"  severity="1" messageCode="CNX_53021" message="Solicitação inválida recebida." user="" stacktrace="" service="Rep_Service_Prd" serviceType="RS" clientNode="node01_jbpaetlsr2" pid="11900" threadName="11772" context="">
    </logEvent>
    </log></lastDayErrorLogs></product>
</client>

以下の属性の内容による問題

message="Solicitação inválida recebida."

更新

@Unsungのコメントの後jqxhr.responseText、応答xmlが含まれていることを確認したので、エラー関数内でxmlを解析することを考えました。

しかし、関数に変更を加えた後でもerror、Internet Explorer 8 で次のエラーが発生します。

Webpage error details

User Agent: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; WOW64; Trident/4.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.3; .NET4.0C; .NET4.0E)
Timestamp: Tue, 22 Jan 2013 06:57:44 UTC


Message: Invalid XML: <?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="client.xsl"?>
 <client version="1.0">
  <product>
<lastDayErrorLogs><log>

<logEvent timestamp="2013-1-15_10:56:6"  severity="1" messageCode="CNX_53021" message="Solicita invda recebida." user="" stacktrace="" service="Rep_Service_Prd" serviceType="RS" clientNode="node01_jbpaetlsr002" pid="11900" threadName="11772" context="">
</logEvent>
</log></lastDayErrorLogs></product>
</client>
Line: 2
Char: 10691
Code: 0
URI: http://xxxx:10270/...include/js/jquery.js

エラー関数:

.error(function() {
    if (jqxhr.responseText == 'INVALID_SESSION') {
        alert("Your Session has been timed out");
        window.location.replace(communities);
    } else {
        alert("Error while getting xml from server");
        var xml=StringtoXML(jqxhr.responseText);
        var csmXmlDoc = $.parseXML( jqxhr.responseText ),
        $csmxml = $( csmXmlDoc ),
        $csmTitle = $csmxml.find("product").children("version");

        alert($csmTitle.text()+", "+$(xml).find("product").children("version").text());
        //goToHomePage();
    }
})
4

0 に答える 0