带有 jQuery 的 themoviedb JSON API
Posted
技术标签:
【中文标题】带有 jQuery 的 themoviedb JSON API【英文标题】:themoviedb JSON API with jQuery 【发布时间】:2012-12-18 14:30:15 【问题描述】:我正在尝试做一些看起来应该很简单的事情。获取文本字段的输入并通过 API 在 themoviedb.org 数据库中搜索。
我正在使用 jQuery 和 themoviedb.org APIv3,它支持 JSONP。不过,我得到的只是这样的回应:
"status_code":6,"status_message":"Invalid id - The pre-requisite id is invalid or not found"
这并不能告诉我很多。什么ID?
我知道的事情:
我有正确的 API 密钥 搜索按钮正在提交并正确获取输入值这里是jsfiddle,这里是关于搜索电影的API documentation。另外,请查看 API 文档的 this version。我认为这与查询参数有关。
真的,我不知道我在用 JSON 做什么,所以我希望这将是一个有代表性的例子,可以帮助我理解它。
【问题讨论】:
【参考方案1】:您使用的 URL 不正确,您的示例生成以下请求:
http://api.themoviedb.org/3/search/MOVIENAME?api_key=APIKEY
但根据 API 文档,它应该如下所示:
http://api.themoviedb.org/3/search/movie?api_key=APIKEY&query=MOVIENAME
我已经分叉并更新了你的jsfiddle
【讨论】:
【参考方案2】:您只需要正确数量的查询字符串参数。所需的参数是query
和api_key
。我在这里找到了这些要求http://docs.themoviedb.apiary.io/#get-%2F3%2Fsearch%2Fmovie。试试这个吧:
$(document).ready(function()
var url = 'http://api.themoviedb.org/3/',
mode = 'search/movie?query=',
input,
movieName,
key = '&api_key=470fd2ec8853e25d2f8d86f685d2270e';
$('button').click(function()
var input = $('#movie').val(),
movieName = encodeURI(input);
$.ajax(
type: 'GET',
url: url + mode + input + key,
async: false,
jsonpCallback: 'testing',
contentType: 'application/json',
dataType: 'jsonp',
success: function(json)
console.dir(json);
,
error: function(e)
console.log(e.message);
);
);
);
工作小提琴:http://jsfiddle.net/fewds/srdHD/3/
注意: 因为这很可能是您的 REAL api 密钥,我建议您申请一个新的!
【讨论】:
输入变量的内容是什么。【参考方案3】:需要正确数量的查询参数。需要的参数是query和api_key
如果您通过 urlencode 或解码遇到错误,请检查您的网址 urlencode.in 或 urldecode.in
【讨论】:
以上是关于带有 jQuery 的 themoviedb JSON API的主要内容,如果未能解决你的问题,请参考以下文章