2012-05-02 43 views
0

我試圖將輸入文本的值與Ajax請求的返回值進行比較,但我不知道爲什麼測試不起作用。 我正在使用Phonegap。 這裏是我的代碼:XML解析的測試返回

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é") ; 
          } 
         } 
    }); 
}); 

你對這個問題有什麼想法嗎? 非常感謝:-)

回答

1

您無法使用JavaScript訪問跨域資源。

下面是一個例子:http://jsfiddle.net/MVzgL/

這是誤差輸出:

的XMLHttpRequest不能加載 http://www.edumobile.org/blog/uploads/XML-parsing-data/Data.xml。 來源http://fiddle.jshell.net不允許通過 訪問控制允許來源。

因此,如果您在www.edumobile.org以外的任何域上運行此代碼,那麼它將無法運行。但是,您可以設置抓取遠程內容的服務器端代理,然後從JS調用代理,因爲它將位於同一個域中。設置這個代理非常簡單,你只需要請求這些信息然後輸出給JS(許多服務器端語言具有本機JSON編碼)。