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。Access-Control-Allow-Origin 不允许来源http://fiddle.jshell.net 。

因此,如果您在除此之外的任何域上运行此代码,www.edumobile.org它将无法运行。但是,您可以设置一个服务器端代理来获取远程内容,然后从您的 JS 调用代理,因为它将位于同一个域中。设置这个代理非常简单,您只需请求信息,然后将其输出到 JS(许多服务器端语言都有本机 JSON 编码)。

于 2012-05-02T20:31:44.667 回答