gpt4 book ai didi

javascript - 使用 TMDb API 的 JSON 输入意外结束

转载 作者:行者123 更新时间:2023-12-02 23:56:04 25 4
gpt4 key购买 nike

我正在尝试解析从电影数据库返回的 JSON 数据。我收到一条错误消息,告诉我出现以下错误:

Uncaught SyntaxError: Unexpected end of JSON input
at JSON.parse (<anonymous>)
at XMLHttpRequest.movieReq.onreadystatechange (discover.js:34)
at loadIMDBDetails (discover.js:38)
at MainFunc (discover.js:68)
at discover.js:5
I am accessing individual movie information using the following XMLHttpRequest:

movieReq.open('GET', ' https://api.themoviedb.org/3/movie/299537?api_key= ', false);

我还有其他 XMLHttpRequest,它们可以很好地返回 JSON 数据。这些请求正在使用 API 的发现功能。

这是产生问题的函数

function loadIMDBDetails(mO, i) {
movieReq = new XMLHttpRequest();

movieReq.onreadystatechange = function () {
var parsedObj = JSON.parse(movieReq.responseText);
mO.imdbId = parsedObj['imdb_id'];
};
movieReq.open('GET', 'https://api.themoviedb.org/3/movie/299537?api_key=34f8307d9addabf7924eab7f22cabb23', false);
movieReq.send();
}

When using console.log to return the responseText, this is the result:

{"成人":false,"backdrop_path":"/w2PMyoyLU22YvrGK3smVM9fW1jj.jpg","belongs_to_collection":null,"预算":152000000,"流派":[{"id":28,"名称":" Action "},{"id":12,"name":"冒险"},{"id":878,"name":"科幻"}],"主页":"https://www.marvel.com/movies/captain-marvel ","id ":299537,"imdb_id":"tt4154664","original_language":"en","original_title":"惊奇队长","overview":"故事讲述卡罗尔·丹弗斯成为宇宙最强大的英雄之一的故事地球陷入了两个外星种族之间的银河 war 之中。《惊奇队长》以 1990 年代为背景,是漫威电影宇宙历史上前所未见的时期的全新冒险。","受欢迎度":419.096, "poster_path":"/AtsgWhDnHTq68L0lLsUrCnM7TjG.jpg","生产公司":[{"id":420,"logo_path":"/hUzeosd33nzE5MCNsZxCGEKTXaQ.png","name":"漫威工作室","origin_country":"美国"}],"product_countries":[{"iso_3166_1":"美国","name":"美利坚合众国"}],"release_date":"2019-03-06","收入":910298835,"运行时":124,"spoken_languages":[{"iso_639_1":"en","name":"英语"}],"status":"已发布","tagline":"更高。更远。更快。","title":"惊奇队长","video":false,"vote_average":7.3,"vote_count":2885}

最佳答案

事实证明我忘记添加对 onreadystatechange 事件的检查。我添加了以下检查并在 if 语句中运行 json 解析,这解决了我的问题!

movieReq.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
var parsedObj = JSON.parse(movieReq.responseText);
mO.imdbId = parsedObj['imdb_id'];
}
};

关于javascript - 使用 TMDb API 的 JSON 输入意外结束,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55387493/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com