我试图从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 =“https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js”integrity =“sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4 =”crossorigin =“anonymous”>
任何有关问题的见解都将非常感激 .
3 回答
在类似的情况下我遇到过这种情况,除了一个get和一个帖子 . 我最终只是换成了ajax电话 . 试试这个:
Don 't quote me on this, because it doesn't在文档中明确说明了这一点,但我认为
.getJSON()
调用具有作为第二个参数发送回的响应,而不是从 endpoints 获得的实际响应数据 .在所有概率中,这只是与CORS相关的错误 .
您的AJAX请求失败,因为请求的来源(由您的html文件中的JavaScript生成)和API服务器是“Cross Origin”(基本上是不同的域和/或端口),并且浏览器倾向于限制“资源共享”之间的“资源共享”为了安全起见 .
如果您使用的是Chrome,请尝试添加类似CORS Toggler的扩展程序,启用它并重试 .
好的,我发现了问题,现在我觉得自己像个白痴 . 我的测试试图引用一个HTML ID而不是一个html类,所以我认为这是一个jquery问题 . 事实证明,我需要额外的网址部分来检索图像 . TMDb API现在运行正常,感谢您的帮助!