如何使用IMDB api搜索整个字符串?

时间:2017-01-22 21:05:10

标签: javascript jquery imdb

IMDB API说使用以下内容,但如果我搜索“华尔街的狼”,它将通过分隔单词而不是整个字符串进行搜索。

HTML

<form name="search-imdb" autocomplete="off">
  <input type="hidden" value="483aa4e4-59f8-4728-804d-8f4bb4311d5a" name="api_key">
   <div class="row">
    <div class="col-md-8">
      <input class="form-control" required="" type="text" name="q" title="Type Name, Title, Character, etc. and hit Enter" placeholder="Type Name, Title, Character, etc. and hit Enter">
    </div>
    <div class="col-md-4">
      <button class="btn btn-primary btn-block">Search IMDb</button>
    </div>
   </div>
  <div class="code"></div>
 </form>

JS

$('form[name="search-imdb"]').on("submit", function(e) {
  var form = $(this);
  e.preventDefault();
  $.ajax({
     url: "http://imdb.wemakesites.net/api/search",
     data: form.serialize(), // assuming the form has a hidden input with api_key name, containing your API key
     crossDomain: true,
     dataType: "jsonp",
     success: function(data) {
       window.console.log(data);
     }
  });
});

JSON

"data": {
        "results": {
            "titles": [
                {
                    "title": "The...",

1 个答案:

答案 0 :(得分:1)

演示页忽略编码搜索词,而是在网址find?q=wolf of wall street中留下文字空格。 API最有可能解释为find?q=wolf,因为空格被视为无效,而其余的URL将被忽略。

这有效:http://www.imdb.com/find?q=wolf%20of%20wall%20street

对您的搜索查询encodeURIComponent()进行网址编码:

var term = 'wolf of wall street';
var encodedTerm = encodeURIComponent(term);

对于像这样的精确搜索词的URL编码通常比使用+用于空格更可取,因为它会编码其他特殊字符,例如可能在电影标题中的重音符号和标点符号,包括加号+