0

入力テキストの値と Ajax リクエストの戻り値を比較しようとしていますが、テストが機能しない理由がわかりません。私はPhonegapに取り組んでいます。ここに私のコードがあります:

var contenu = $("#champ").val() ;
$("#envoi_search").click(function() {
    $.ajax({
        type: "POST",
        url: "http://www.edumobile.org/blog/uploads/XML-parsing-data/Data.xml",
        data: "{}",
        cache: false,
        dataType: "xml",
        success: function(data) {
                            $(data).find("Book").each(function () {
                                if($(this).find("name").text() == contenu) {
                                    $("#result").append("<br> Titre : " + $(this).find("name").text());
                                    $("#result").append("<br> Auteur : " + $(this).find("address").text());
                                    $("#result").append("<br> Pays : " + $(this).find("country").text());
                                }
                            });
                            if($("#result").is(':empty')) {
                                $("#error").append("Désolé Aucun livre n\'a été trouvé") ;
                            }
                        }
    });
});

この問題について何か考えはありますか? 本当にありがとうございました :-)

4

1 に答える 1

1

JavaScript を使用してクロスドメイン アセットにアクセスすることはできません。

以下に例を示します: http://jsfiddle.net/MVzgL/

これはエラー出力です:

XMLHttpRequest はhttp://www.edumobile.org/blog/uploads/XML-parsing-data/Data.xmlを読み込めません 。オリジンhttp://fiddle.jshell.netは Access-Control-Allow-Origin で許可されていません。

したがって、それ以外のドメインでこのコードを実行している場合www.edumobile.org、機能しません。ただし、リモート コンテンツを取得するサーバー側プロキシをセットアップし、同じドメイン上にあるため、JS からプロキシを呼び出すことができます。このプロキシの設定は非常に簡単です。情報をリクエストして、それを JS 用に出力するだけです (多くのサーバー側言語には、ネイティブの JSON エンコーディングがあります)。

于 2012-05-02T20:31:44.667 に答える