我在使用获取 API 时在 Firefox 上看到奇怪的行为。我不知道我是否做错了什么,或者我是否遗漏了一些文档并且不允许我尝试做的事情。
如果我在本地主机上托管下面的页面,Firefox 会拒绝获取并在尝试获取资源时给出 TypeError: NetworkError。
我在开发工具或 Wireshark 中都没有看到任何获取请求.似乎没有任何进一步的调试可用于诊断。
“在本地主机上托管”是指由本地网络服务器(在本例中为 nginx)托管,而不是从文件系统托管。例如,地址栏显示“http://localhost/fetch_localhost_error.html”。
在 http://jsbin.com/yowebiyigi/edit?html,output 托管同一页面或任何其他端点提供预期的输出 - 文本出现在 div 中,我看到在开发工具中发出提取请求。
Chrome 在这两种情况下都能正常工作,这意味着本地主机和远程服务器都针对 CORS 等进行了正确配置(但 FF 似乎永远不会查询远程服务器)。
我已经在 Windows 7 上尝试了 48 和 Nightly (51)。不幸的是,我现在无法访问任何其他操作系统。
<!DOCTYPE html>
<html>
<head>
</head>
<body>
<div id="output"></div>
<div id="error"></div>
<script>
var result = fetch('http://www.randomtext.me/api/')
result.then(
function(response){
return response.json()
})
.then(
function (response) {
document.getElementById("output").innerHTML = response.text_out;
})
.catch(
function(error){
document.getElementById("error").innerHTML = error;
});
</script>
</body>
</html>
这非常令人沮丧,因为我无法在本地开发基于提取的解决方案。谁能阐明正在发生的事情?
最佳答案
在我的案例中,这是该死的 AdBlock。浪费了3个小时...
希望有人能早点找到这个。
关于javascript - 当托管在本地主机上时,Fetch API 因 NetworkError 被拒绝(仅限 Firefox),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38957103/