从文本输入创建动态URL =在URL字符串中返回“undefined”

时间:2015-11-21 21:51:59

标签: jquery ajax

我正在尝试创建一个URL,将输入文本传递给AJAX调用的查询字符串。在控制台中,我可以看到我将输入的文本捕获为字符串,但它没有传入URL并且它返回一个空对象。

<form action="" method="GET">
    <input type="text" id="movie-title" placeholder="Enter a movie title">
    <input type="submit" id="sbmt-movie">

</form>

$("#sbmt-movie").click(function(){
    var movie = $("#movie-title").val().toLowerCase();
    console.log("the movie title is " + movie);
    var url =  "https://api.themoviedb.org/3/search/movie?query=" + encodeURIComponent(url) + "&api_key=9b97ec8f92587c3e9a6a21e280bceba5"; 

    $.ajax ({
        url: url,
        dataType: "json",
        success: function (data) {
            console.log(data);

            var list = data.list;
        }
    }); //close .ajax    
});

这是我在控制台中看到的信息:

XHR完成加载:GET“https://api.themoviedb.org/3/search/movie?query=undefined&api_key=9b97ec8f92587c3e9a6a21e280bceba5”。

Object {page:1,results:Array [0],total_results:0,total_pages:1}

Link to Codepen

2 个答案:

答案 0 :(得分:1)

您的问题在于

var url =  "https://api.themoviedb.org/3/search/movie?query=" + encodeURIComponent(url) + "&api_key=9b97ec8f92587c3e9a6a21e280bceba5";

您正尝试在技术上尚未定义的变量encodeURIComponent()上使用函数url。 我想你要做的是encodeURIComponent(movie)

var url =  "https://api.themoviedb.org/3/search/movie?query=" + encodeURIComponent(movie) + "&api_key=9b97ec8f92587c3e9a6a21e280bceba5";

查看我更新的代码集here

答案 1 :(得分:0)

您正在将url传递给encodeURIComponent,而不是movie