用于获取json数据的Ajax查询

时间:2017-04-17 12:33:43

标签: jquery json ajax netflix

我正在尝试从一个api获取标题,但收到一些错误。这是我第三次使用ajax。 请让我知道我在哪里做错了。

这是我的代码。

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Search Movies</title>
    <style type="text/css">
        #movieTemplateContainer div
        {
            width:500px;
            padding: 10px;
            margin: 10px;
            border: black solid 1px;
        }

    </style>
</head>
<body>
<label>Search Movies:</label>
<input id="movieName" size="50" />
<button id="btnLookup">Lookup</button>

<div id="movieTemplateContainer"></div>

  <script id="movieTemplate" type="text/x-jquery-tmpl">
<div>      
         <img src="${BoxArt.LargeUrl}" />
        <strong>${Name}</strong>
        </br>
        <button id="playButton" movieID=${NetflixApiId} onclick="play(this)">Play Now</button>
        <p>
        {{html Synopsis}}
        </p>
  </div>  
</script>

  <script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery/jquery-1.4.2.min.js"></script>
    <script type="text/javascript" src="jquery.tmpl.js"></script>
    <script type="text/javascript">

    $("#btnLookup").click(function () {

        // Build OData query
        var movieName = $("#movieName").val();
        var query = "http://netflixroulette.net/api/api.php?" // netflix base url
        + "title=" + escape(movieName) // top-level resour

        // Make JSONP call to Netflix
     $.ajax({
            dataType: "jsonp",
            url: query,
            jsonpCallback: "callback",
            success: callback
            });
        });

    function callback(result) {
        // unwrap result
        var movies = result.d.results;

        $("#movieTemplateContainer").empty();
        $("#movieTemplate").tmpl(movies).appendTo("#movieTemplateContainer");
    }

    </script>


<script src="http://jsapi.netflix.com/us/api/js/api.js"></script>


</body>
</html>

我正在使用此API

请告诉我如何解决错误。

1 个答案:

答案 0 :(得分:0)

删除数据类型中的p。 JSONP引用了JSON填充。此外,它还包括一个错误函数,以便即使数据失败也能查看数据:

  $.ajax({
            dataType: "json",
            url: query,
            jsonpCallback: "callback",
            success: callback,
            error: failed
        });
    });

    function callback(result) {
        console.log(result);
        // unwrap result
        var movies = result.d.results;

        $("#movieTemplateContainer").empty();
        $("#movieTemplate").tmpl(movies).appendTo("#movieTemplateContainer");
    }

    function failed(xhr, ajaxOptions, thrownError) {
    alert(xhr.status);
    alert(thrownError);
  }