简单的电影 API 请求未显示在控制台日志中

问题描述 投票:0回答:1

我正在尝试发出一个简单的 API 请求来获取本周热门电影的一些数据。但我在网络浏览器控制台中没有看到它。有什么建议么?这是我自己尝试的第一个 API。我是编码训练营的毕业生。任何事情都有帮助!

这里是存储库:https://github.com/JoelGetzke/JoelsMovies

这是代码:

const apiKey = '535b82486819425b363ecd51e605db3c';
const apiUrl = 'https://api.themoviedb.org';

// Example endpoint to get a list of movies
const endpoint = `${apiUrl}/3/trending/movie/week`;

// Constructing the request URL with API key
const requestUrl = `${endpoint}?api_key=${apiKey}`;

// Making a GET request using fetch API
fetch(requestUrl)
  .then(response => {
    // Check if the response is successful (status code 200)
    if (response.ok) {
      // Parse the JSON response
      return response.json();
    }
    // If response is not successful, throw an error
    throw new Error('Network response was not ok.');
  })
  .then(data => {
    // Do something with the data
    console.log(data);
  })
  .catch(error => {
    // Handle errors
    console.error('There was a problem with the fetch operation:', error);
  });

我尝试刷新页面并打开浏览器consol.log。目前正在阅读: 索引.html:89

   GET http://127.0.0.1:5500/main.js net::ERR_ABORTED 404 (Not Found)

index.html:1 拒绝执行来自“http://127.0.0.1:5500/main.js”的脚本,因为其 MIME 类型(“text/html”)不可执行,并且启用了严格的 MIME 类型检查。

javascript api error-handling fetch console.log
1个回答
0
投票

首先,response.json() 不返回 JavaScript 对象,它返回一个解析为 JavaScript 对象的 Promise。其次,我不记得response.json()是如何工作的,但我有一种感觉,它像常规JavaScript一样“运行”其输入,这意味着如果服务器返回的MIME类型不是application/javascript,那么它可能无法识别它作为可运行的代码。 (也许!)

首先,尝试转储/检查从服务器返回的数据,以仔细检查它确实是纯 JSON。然后使用 JSON.parse() 而不是 response.json() 将其从字符串转换为对象。如果 MIME 类型确实是问题所在,那么只要您向 JSON.parse() 提供一个字符串,无论网络标头如何描述该字符串,JSON.parse() 都会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.