1

各言語のxmlファイルを作成し、ajax getを使用して文字列をローカライズしようとしています。

var text = new Object();
$.ajax({
        async: false,
        type: 'GET',
        url: 'english.xml',
        dataType: "xml",
        error: function(xhr, status, error) {
              console.log("Lets see the error...");
              console.log(xhr.responseText);
        },
        success: function(xml){
                $(xml).find('text').each(function(){
                        text[$(this).attr('id')] = $(this).text();
                });
        }
});
console.log("Lets see the object...");
console.log(text);

トラブルシューティングのためにいくつかの console.log を追加しました。これがコンソールのスクリーンショットです。 コンソール

何らかの理由でリクエストが失敗したことがわかります..理由はわかりますか?

english.xml には以下が含まれています。

<text id="call">Caller</text>
<text id="chat">Chatter</text>

更新: データ型をテキストに変更し、成功の応答が得られるようになりましたが、「テキスト」オブジェクトは更新されませんか?

var text = new Object();
$.ajax({
        type: 'GET',
        url: 'english.xml',
        dataType: "text",
        error: function(xhr, status, error) {
              console.log(xhr);
              console.log(xhr.responseText);
              console.log(status);
              console.log(error);
        },
        success: function(xml){
                $(xml).find('text').each(function(){
                        text[$(this).attr('id')] = $(this).text();
                });
                console.log(xml);
                console.log(text);
        }
});
4

1 に答える 1

0

追加します

<?xml version="1.0" encoding="utf-8"?>

ドキュメントの先頭に。戻り値の型が xml になるとあなたが言ったので、これを期待していて、見つからないときにエラーが発生しているように感じます。

"application/xml"また、応答タイプは単にではなくすべきではありません"xml"か?

また、async を false に設定しています。これは、同期呼び出しを要求していることを意味します。念のため、あなたが疑問に思っていた

編集:編集しましたので、application/xml代わりに実際に使用する必要がありますtext/xml

ルートノードも必要です

<applicationCalls>
    <text id="call">Caller</text>
    <text id="chat">Chatter</text>
</applicationCalls>

ルート ノードは好きなように呼び出すことができます。意味のあるものにしてみてください。

于 2012-07-23T13:23:07.913 に答える