Ajax API搜索中未定义searchCallBack

Ajax API搜索中未定义searchCallBack,ajax,Ajax,我正在尝试在烂番茄网站上搜索他们的电影,当我尝试键入“TOY”时,我得到了一个未定义的searchCallBack,搜索应该返回包含单词TOY的电影。顺便说一句,我对阿贾克斯完全陌生。我在开发者工具控制台中发现了这个错误 代码如下: $(function () { // You will need this API key in order to call the Rotten Tomatoes API. var apiKey = *removed for security pu

我正在尝试在烂番茄网站上搜索他们的电影,当我尝试键入“TOY”时,我得到了一个未定义的searchCallBack,搜索应该返回包含单词TOY的电影。顺便说一句,我对阿贾克斯完全陌生。我在开发者工具控制台中发现了这个错误

代码如下:

$(function () {
    // You will need this API key in order to call the Rotten Tomatoes API.
    var apiKey = *removed for security purposes;
    var baseUrl = "http://api.rottentomatoes.com/api/public/v1.0";

    var moviesSearchUrl = baseUrl + '/lists/movies/box_office.json?apikey=' + apiKey
    document.getElementById('searchBox').addEventListener('keydown', function (event) {

        if (event.which === 13 || event.keyCode === 13) {
            var searchText = this.value;
            $(document).ready(function () {
                $.ajax("http://api.rottentomatoes.com/api/public/v1.0/movies.json", {
                    q: 'TODO put in search text',
                    page_limit: 10,
                    page: 1,
                    success: seachCallBack(),
                    dataType: 'jsonp'
                });
            });

            // callback for when we get back the results
            function searchCallback(data) {               
                var movies = data.movies;
                $.each(movies, function (index, movie) {
                    $(document.body).append('<h1>' + movie.title + '</h1>');
                    $(document.body).append('<img src="' + movie.posters.thumbnail + '" />');
                });
            }
        }
    });
});
$(函数(){
//您需要此API键才能调用Rotter Tomatos API。
var apiKey=*出于安全目的被删除;
var baseUrl=”http://api.rottentomatoes.com/api/public/v1.0";
var moviesSearchUrl=baseUrl+'/lists/movies/box_office.json?apikey='+apikey
document.getElementById('searchBox')。addEventListener('keydown',函数(事件){
if(event.which==13 | | event.keyCode==13){
var searchText=this.value;
$(文档).ready(函数(){
$.ajax(”http://api.rottentomatoes.com/api/public/v1.0/movies.json", {
q:‘TODO输入搜索文本’,
页数限制:10页,
页码:1,
成功:seachCallBack(),
数据类型:“jsonp”
});
});
//返回结果时的回调
函数searchCallback(数据){
var movies=data.movies;
$.each(电影,功能(索引,电影){
$(document.body).append(“”+movie.title+“”);
$(document.body).append(“”);
});
}
}
});
});

在Ajax请求回调中,您将函数“seachCallBack”拼错了。如果拼写正确,它应该可以工作。应该是“searchCallback”

$(函数(){
var apiKey=“出于安全目的删除”;
var baseUrl=”http://api.rottentomatoes.com/api/public/v1.0"; 
var moviesSearchUrl=baseUrl+'/lists/movies/box_office.json?apikey='+apikey
函数keydownHandler(evt){
if(event.which==13 | | event.keyCode==13){
var searchText=this.value;
$.ajax(”http://api.rottentomatoes.com/api/public/v1.0/movies.json", { 
问:搜索文本,
页数限制:10页,
页码:1,
成功:搜索回调,
数据类型:“json”
}); 
}
}           
//返回结果时的回调
函数searchCallback(数据){
var movies=data.movies;
$.each(电影,函数(索引,电影){
$(document.body).append(“”+movie.title+“”);
$(document.body).append(“”);
});
}
$(“#搜索框”).addEventListener('keydown',keydownHandler);
});

谢谢,但当我搜索“toy”时,即使我已经更正了拼写,它仍然会给我错误“searchCallback未定义”。请在keydown处理程序之外定义回调函数。您还应该将Ajax调用移到keydown处理程序之外。此外,使用Jquery中的$(function(){})会使用document.onReady,因此在定义Ajax请求时无需再次调用它。
$(function () { 

     var apiKey = "removed for security purposes"; 
     var baseUrl = "http://api.rottentomatoes.com/api/public/v1.0"; 
     var moviesSearchUrl = baseUrl + '/lists/movies/box_office.json?apikey=' + apiKey

    function keydownHandler(evt) {
           if (event.which === 13 || event.keyCode === 13) {
               var searchText = this.value; 
              $.ajax("http://api.rottentomatoes.com/api/public/v1.0/movies.json", { 
                     q: search text, 
                     page_limit: 10, 
                     page: 1, 
                     success: searchCallback, 
                     dataType:"json"
              }); 
        }
    }           

   // callback for when we get back the results 
   function searchCallback(data) { 
        var movies = data.movies; 
        $.each(movies, function (index, movie) { 
           $(document.body).append('<h1>' + movie.title + '</h1>'); 
           $(document.body).append('<img src="' + movie.posters.thumbnail + '" />'); 
        });
     }

    $('#searchBox').addEventListener('keydown', keydownHandler);
 });