gpt4 book ai didi

javascript - omdb api 无结果

转载 作者:行者123 更新时间:2023-12-01 03:41:06 25 4
gpt4 key购买 nike

我正在家里使用 omdb api 进行一个项目,如果我搜索一部电影没有结果,它仍然会显示详细信息(标题、年份、情节等)以及我之前成功搜索的损坏图像。

如果找不到电影,我会尝试阻止它显示任何内容。这可能吗?

我对 Javascript 和 Json 的了解非常有限,但一段时间以来一直在尝试各种事情,但无法解决。任何帮助将不胜感激。

这是我在尝试搞砸之前的代码:

var $Form = $('#omdbform'), $Container = $('#containera');
$Container.hide();
$Form.on('click', function(p_oEvent){
var sUrl, sMovie, oData;
p_oEvent.preventDefault();
sMovie = $Form.find('#moviename').val();
sUrl = 'https://www.omdbapi.com/?t=' + sMovie + ''
$.ajax(sUrl, {
complete: function(p_oXHR, p_sStatus){
oData = $.parseJSON(p_oXHR.responseText);
console.log(oData);
$Container.find('.title').text(oData.Title);
$Container.find('.plot').text(oData.Plot);
$Container.find('.poster').html('<img src="' + oData.Poster + '" alt=""/>');
$Container.find('.year').text(oData.Year);
$Container.find('.rated').text(oData.Rated);
$Container.show();
}
});
});

最佳答案

查询失败时,此 API 响应如下:

{"Response":"False","Error":"Movie not found!"}

状态代码200,因此您应该检查响应的正文。

编辑:

您可以使用hasOwnProperty响应对象上的方法并检查该对象是否具有 title 属性,然后调用 Container.show(),否则不执行任何操作或在 DOM 中显示有关无结果的信息。

编辑2:

oData = $.parseJSON(p_oXHR.responseText);

if (oData.hasOwnProperty("Title")) {
$Container.find(".title").text(oData.Title);
$Container.find(".plot").text(oData.Plot);
$Container.find(".poster").html('<img src="' + oData.Poster + '" alt=""/>');
$Container.find(".year").text(oData.Year);
$Container.find(".rated").text(oData.Rated);
} else {
$Container.find(".error").text(oData.Response);
}
$Container.show();

如果你的容器仍然有关于上一个视频的信息,也许你应该实现清除 DOM 的方法,我猜 empty方法或来自DOM Removal的其他方法部分。

关于javascript - omdb api 无结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43878857/

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