サーバー側 (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();
}
})