【问题标题】:jquery script not being executed in htmljquery脚本没有在html中执行
【发布时间】:2023-03-26 14:25:01
【问题描述】:

我正在尝试从 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" 完整性="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4="crossorigin="anonymous">

任何关于问题可能是什么的见解将不胜感激。

【问题讨论】:

  • 更具体地了解什么是有效的,什么是无效的,并报告控制台中抛出的任何错误(如果有的话)。花几分钟阅读How to Ask
  • 你的控制台有错误吗?
  • 收到任何错误吗?另外,您的IMG标签没有正确关闭,请使用双引号打开和关闭src。

标签: javascript jquery html ajax api


【解决方案1】:

我在类似的情况下也遇到过这种情况,除了 get 和 post。我最终只是换了一个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 作为第二个参数发回的响应,而不是您的实际响应数据从端点获取。

【讨论】:

  • 如果不给出任何建设性的批评,就应该禁止投票。
【解决方案2】:

在所有可能性中,这只是一个与 CORS 相关的错误。

您的 AJAX 请求失败,因为请求的来源(由您的 html 文件中的 JavaScript 发出)和 API 服务器是“跨源”(基本上不同的域和/或端口),并且浏览器倾向于限制“资源为了安全起见,在它们之间共享”。

如果您使用的是 Chrome,请尝试添加类似 CORS Toggler 的扩展程序,启用它并重试。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多