Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Firefox CORS与JSON的问题_Javascript_Json_Cors - Fatal编程技术网

Javascript Firefox CORS与JSON的问题

Javascript Firefox CORS与JSON的问题,javascript,json,cors,Javascript,Json,Cors,我正在尝试使用来自的API。(密钥是免费的,可以很容易地更改,因此我将包括它,因为没有它,您甚至无法测试它们的功能) 现在,当我的JavaScript托管在本地时,它在FF中运行良好,但在GitHub页面上运行不好 这里有一个不起作用的函数。错误是: 网络错误:发生网络错误 …它似乎发生在bhttp.send()之后 函数getMovieDetails(){ var reqURL=”https://api.themoviedb.org/3/movie/latest?api_key=afe4e1

我正在尝试使用来自的API。(密钥是免费的,可以很容易地更改,因此我将包括它,因为没有它,您甚至无法测试它们的功能)

现在,当我的JavaScript托管在本地时,它在FF中运行良好,但在GitHub页面上运行不好

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

网络错误:发生网络错误

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

函数getMovieDetails(){ var reqURL=”https://api.themoviedb.org/3/movie/latest?api_key=afe4e10abbb804e2b4a4f8a3ef067ad5&language=en-美国”; var bhttp=新的XMLHttpRequest(); 必和必拓打开(“获取”,请求URL,错误); setRequestHeader(“内容类型”、“json”); bhttp.send(); var response=JSON.parse(bhttp.responseText); var str=JSON.stringify(响应,null,2); 返回响应; }
log(getMovieDetails())我不是firefox用户,所以您需要对此进行测试。但是,如果异步阻塞理论是正确的,这应该是可行的

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

函数getMovieDetails(回调){ var reqURL=”https://api.themoviedb.org/3/movie/latest?api_key=afe4e10abbb804e2b4a4f8a3ef067ad5&language=en-美国”; var bhttp=新的XMLHttpRequest(); 必和必拓打开(“获取”,请求URL,真); setRequestHeader(“内容类型”、“json”); bhttp.onload=函数(){ 如果(bhttp.readyState==4){ 如果(bhttp.status==200){ 回调(JSON.parse(bhtp.responseText)); }否则{ 控制台错误(bhttp.statusText); } } }; bhttp.send(); } getMovieDetails(函数(电影){ console.log(电影);
});我不是firefox用户,所以您需要对此进行测试。但是,如果异步阻塞理论是正确的,这应该是可行的

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

函数getMovieDetails(回调){ var reqURL=”https://api.themoviedb.org/3/movie/latest?api_key=afe4e10abbb804e2b4a4f8a3ef067ad5&language=en-美国”; var bhttp=新的XMLHttpRequest(); 必和必拓打开(“获取”,请求URL,真); setRequestHeader(“内容类型”、“json”); bhttp.onload=函数(){ 如果(bhttp.readyState==4){ 如果(bhttp.status==200){ 回调(JSON.parse(bhtp.responseText)); }否则{ 控制台错误(bhttp.statusText); } } }; bhttp.send(); } getMovieDetails(函数(电影){ console.log(电影);
});好的,看起来Kittle是正确的,问题是firefox插件隐私獾阻止了API。我现在觉得自己很蠢,但至少我的代码现在很干净。

好吧,看起来Kirtle是正确的,问题是firefox插件隐私獾阻止了API。我现在觉得自己很愚蠢,但至少我的代码现在很干净。

这里只是一个暗中操作,但是使用同步请求是不好的,而且不受鼓励,所以我想知道FF是否阻止了它。这显示在控制台中,但由于它在本地工作,我认为它也可以在主机上工作。有什么办法可以让它更好呢?发现这个->
注意:从Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用。
所以我假设如果您将代码更改为异步,您应该可以继续。链接->顺便说一句,
GitHub页面支持CORS
是不相关的-代码中的问题是,
api.themoviedb.org
是否发送CORS标题?答:这只是一个暗中操作,但是使用同步请求是不好的,不鼓励使用,所以我想知道FF是否阻止了它。Y这显示在控制台中,但由于它在本地工作,我认为它也可以在主机上工作。有什么办法可以让它更好呢?发现这个->
注意:从Gecko 30.0(Firefox 30.0/Thunderbird 30.0/SeaMonkey 2.27)开始,由于对用户体验的负面影响,主线程上的同步请求已被弃用。
所以我假设如果您将代码更改为异步,您应该可以继续。链接->顺便说一句,
GitHub页面支持CORS
是不相关的-代码中的问题是,
api.themoviedb.org
是否发送CORS标题?答:这看起来确实是一个同步/异步问题,我对webdev的工作还是新手,所以我真的不知道有多少最佳实践,但我不相信这是一个同步/异步问题。我尝试使用Firefox和GitHub页面的原始同步代码,一切都很好。我尝试过的一件事确实导致了最初的错误,那就是使用了无效的
api_密钥
,这让我怀疑这是否只是JS缓存问题?很可能是其他问题,但
弃用的
标记无论如何都是一个很好的理由。看起来这确实是一个同步/异步问题,我还不熟悉webdev的工作,所以我不太了解yetGlad的最佳实践,这是固定的,但我不相信这是一个同步/异步问题。我尝试使用Firefox和GitHub页面的原始同步代码,一切都很好。我尝试过的一件事确实导致了最初的错误,那就是使用了无效的
api_键
,这让我怀疑这是否只是JS缓存问题?这很可能是其他原因,但
不推荐的
标记无论如何都是远离的好理由。