gpt4 book ai didi

javascript - Firefox CORS 与 JSON 的问题

转载 作者:行者123 更新时间:2023-11-28 04:12:37 25 4
gpt4 key购买 nike

我正在尝试使用 https://www.themoviedb.org/ 中的 API 。 ( key 是免费的并且可以轻松更改,因此我将包含它,因为没有它,您甚至无法测试它们的功能)。

现在,我的 JavaScript 在本地托管时可以在 FF 中正常运行,但在 GitHub 页面上则不行。

这是一个不起作用的函数。错误是:

NetworkError: A network error occurred.

…它似乎发生在 bhttp.send(); 之后。

function getMovieDetails() {
var reqURL = "https://api.themoviedb.org/3/movie/latest?api_key=afe4e10abbb804e2b4a4f8a3ef067ad5&language=en-US";
var bhttp = new XMLHttpRequest();
bhttp.open("GET", reqURL, false);
bhttp.setRequestHeader("Content-type", "json");
bhttp.send();
var response = JSON.parse(bhttp.responseText);
var str = JSON.stringify(response, null, 2);
return response;
}
console.log(getMovieDetails());

它在 Chrome 中运行良好。谷歌搜索似乎表明这是一个 CORS 问题,但据我所知 GitHub 页面支持 CORS,所以我不知道我做错了什么。

最佳答案

我不是 Firefox 用户,因此您需要对此进行测试。但如果异步阻塞理论是正确的,这应该可行。

我已将其修改为使用简单的回调,就我个人而言,我不会使用回调,但会做出 promise ,但这是另一个问题:)

function getMovieDetails(callback) {
var reqURL = "https://api.themoviedb.org/3/movie/latest?api_key=afe4e10abbb804e2b4a4f8a3ef067ad5&language=en-US";
var bhttp = new XMLHttpRequest();
bhttp.open("GET", reqURL, true);
bhttp.setRequestHeader("Content-type", "json");
bhttp.onload = function() {
if (bhttp.readyState === 4) {
if (bhttp.status === 200) {
callback(JSON.parse(bhttp.responseText));
} else {
console.error(bhttp.statusText);
}
}
};
bhttp.send();
}

getMovieDetails(function (movie) {
console.log(movie);
});

关于javascript - Firefox CORS 与 JSON 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46135690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com