0

我在使用 .ajax 调用时遇到问题:

    $("#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 is null in firefox 调试器。这是html:

<div id="DBSearch"> 

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

示例查询结果在 fiddler 中返回:

 <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>
4

1 回答 1

0

读取 api 并默认返回 JSON。

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

这是一个更容易的解决方案。更好的是:

var obj = JSON.parse(result);

谢谢 nzifnab 和 KevinB

于 2013-10-15T19:19:11.270 回答