我正在尝试发出一个简单的 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 类型检查。
首先,response.json() 不返回 JavaScript 对象,它返回一个解析为 JavaScript 对象的 Promise。其次,我不记得response.json()是如何工作的,但我有一种感觉,它像常规JavaScript一样“运行”其输入,这意味着如果服务器返回的MIME类型不是application/javascript,那么它可能无法识别它作为可运行的代码。 (也许!)
首先,尝试转储/检查从服务器返回的数据,以仔细检查它确实是纯 JSON。然后使用 JSON.parse() 而不是 response.json() 将其从字符串转换为对象。如果 MIME 类型确实是问题所在,那么只要您向 JSON.parse() 提供一个字符串,无论网络标头如何描述该字符串,JSON.parse() 都会起作用。