我正在尝试从Movie DB API中检索信息,并且jquery代码似乎没有执行。我认为我的JSON代码可能已关闭,但在重要功能之前进行测试后,我意识到它并没有被运行。这是脚本:
<script type="text/javascript">
//test 0
$("#title").html('<h1>JS Loaded</h1>');
$(document).ready(function(){
//test 1
$("#title").html('<h1>Document Ready</h1>');
var getPoster = function(){
//test 2
$("#title").html('<h1>Get poster Executed</h1>');
$.getJSON(
"http://api.themoviedb.org/3/discover/movie?with_cast=31&sort_by=popularity.desc&api_key=d34d1c194fd655e99cc15a631bad6760&page=1",
function(data) {
if (data != "Nothing found."){
$('#poster').html('<img alt="Film/Show Poster" width="101px" height="150px" src=' + data.results[0].poster_path + ';>');
} else {
$('#title').html('<h1>NO POSTER WAS FOUND</h1>');
}
});
}
$('#poster').click(getPoster);
});
jQuery在标题中声明,如下所示:
script src =&#34; https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"完整性=&#34; SHA256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4 =&#34; crossorigin =&#34;匿名&#34;&GT;
对此问题的任何见解都将非常感激。
答案 0 :(得分:0)
我在类似的情况下发生过这种情况,除了一个get和一个帖子。我最终只是换成ajax电话。试试这个:
$.ajax({
dataType: "json",
url: "http://api.themoviedb.org/3/discover/movie?with_cast=31&sort_by=popularity.desc&api_key=d34d1c194fd655e99cc15a631bad6760&page=1",
success: (data) => {
if (data != "Nothing found."){
$('#poster').html('<img alt="Film/Show Poster" width="101px" height="150px" src=' + data.results[0].poster_path + ';>');
} else {
$('#title').html('<h1>NO POSTER WAS FOUND</h1>');
}
},
});
请不要在此引用我,因为它在文档中没有明确说明,但我认为.getJSON()
调用具有get发回的响应作为第二个参数,不是你从端点获得的实际响应数据。
答案 1 :(得分:0)
在所有概率中,这只是与CORS相关的错误。
您的AJAX请求失败,因为请求的来源(由您的html文件中的JavaScript生成)和API服务器是“Cross Origin”(基本上是不同的域和/或端口),并且浏览器倾向于限制“资源”为安全而在他们之间分享。
如果您使用的是Chrome,请尝试添加CORS Toggler之类的扩展程序,启用它并重试。
答案 2 :(得分:0)
好的,我发现了问题,现在我觉得自己像个白痴。我的测试试图引用一个HTML ID而不是一个html类,所以我认为这是一个jquery问题。事实证明,我需要额外的一部分网址来检索图像。 TMDb API现在运行正常,感谢您的帮助!