4

私はそれが単純であるべきだと思われる何かをしようとしています。テキストフィールドの入力を取得し、APIを介してthemoviedb.orgデータベースで検索します。

jQueryとJSONPをサポートするthemoviedb.orgAPIv3を使用しています。しかし、私が得るのはこの応答だけです:

{"status_code":6,"status_message":"Invalid id - The pre-requisite id is invalid or not found"}

それは私に多くを教えてくれません。何のID?

私が知っていること:

  • 私は正しいAPIキーを持っています
  • 検索ボタンは、入力の値を正しく送信および取得しています

これがjsfiddleで、これが映画の検索に関するAPIドキュメントです。また、このバージョンのAPIドキュメントも確認してください。クエリパラメータと関係があると思います。

実際、JSONで何をしているのかわからないので、これが理解に役立つ代表的な例になることを願っています。

4

3 に答える 3

9

必要なのは、正しい数のクエリ文字列パラメータだけです。必要なパラメータはと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/

注: それはおそらくあなたの本当のAPIキーなので、新しいものをリクエストすることをお勧めします!

于 2013-01-04T07:03:36.300 に答える
5

使用する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をフォークして更新しました

于 2013-01-04T06:57:40.150 に答える
0

正しい数のクエリパラメータが必要です。必要なパラメーターはqueryとapi_keyです

urlencodeまたはデコードによってこれでエラーが発生した場合は、 urlencode.inまたはurldecode.inでURLを確認してください。

于 2015-12-30T09:35:47.020 に答える