2013-10-15 198 views
0

返回XML頁面:有問題,與我有與阿賈克斯通話問題阿賈克斯

$("#search").click(function() 
    { 
     $.ajax(
     { 
      type: "GET", 
      url: "http://www.omdbapi.com/", 
      data: { s : "True", r: "XML"}, 
     // dataType: "XML", 
      success:function(result) 
      { 
       $("#DBSearch").html(result); 
      } 
     }); 
    }); 

S是電影搜索和r是返回類型。 使用提琴手時,我可以看到請求恢復正常,但它沒有在我的瀏覽器中顯示任何內容。

我也遇到了一個TypeError:e在firefox調試器中爲null。 下面是HTML:

<div id="DBSearch"> 

</div> 
<button id="search">Search Movie</button> 

樣本查詢結果返回的小提琴手:

<root response="True"> 
    <Movie Title="True Grit" Year="2010" imdbID="tt1403865" Type="movie"/> 
    <Movie Title="True Lies" Year="1994" imdbID="tt0111503" Type="movie"/> 
    <Movie Title="Dodgeball: A True Underdog Story" Year="2004" imdbID="tt0364725" Type="movie"/> 
    <Movie Title="True Romance" Year="1993" imdbID="tt0108399" Type="movie"/> 
    <Movie Title="True Blood" Year="2008" imdbID="tt0844441" Type="series"/> 
    <Movie Title="True Grit" Year="1969" imdbID="tt0065126" Type="movie"/> 
    <Movie Title="True Crime" Year="1999" imdbID="tt0139668" Type="movie"/> 
    <Movie Title="Dreamer: Inspired by a True Story" Year="2005" imdbID="tt0418647" Type="movie"/> 
    <Movie Title="One True Thing" Year="1998" imdbID="tt0120776" Type="movie"/> 
    <Movie Title="True Legend" Year="2010" imdbID="tt1425257" Type="movie"/> 
    </root> 
+1

...你爲什麼要這麼做'。html的(結果)''如果是result' * XML *?這是一個跨域請求嗎? –

+0

我不確定這個問題。我認爲它會將div的html內容設置爲該調用的結果。 – MickB

+0

問題並非所有的xml都是有效的html,因此如果您嘗試使用.html(xmlstring)或.html(xmldoc),您可能會得到不一致或意外的結果,因爲瀏覽器會嘗試將其附加爲HTML而不是XML 。 –

回答

0

讀的API,它默認返回JSON。

success:function(result) 
{ 
    var obj = eval("(" + result + ")"); 
    $("#DBSearch").html(obj.Search[0].Title); 
} 

這是一個更簡單的解決方案。 更妙的是:

var obj = JSON.parse(result); 

謝謝nzifnab和KevinB