我正在制作一个简单的 Web 应用程序前端原型,它需要从我的服务器获取 JSON 数据。服务器本身工作正常——我可以单击链接,JSON 数据就会显示在浏览器中。但以下简单脚本失败了:
fetch('https://x.x.x.x:8000') // MY URL FAILS
// fetch('https://jsonplaceholder.typicode.com/todos/1') // ALTERNATE URL WORKS
.then(function() {
alert("Successful")
})
.catch(function() {
alert("Failure")
});
我对这种前端工作(以及一般的 Javascript)完全陌生,所以我可能会忽略一个明显的原因,但我想到的两个是
- 我的服务器使用自签名证书进行测试;和/或
- 我使用的是非标准端口。
这些可能的解释中第一个似乎更有可能。
访问网页会产生一堆错误,这些错误对我来说没有任何意义(除了找不到图标):
我会暂时在下面的评论中发布完整的 URL,以防其他人想看看会发生什么,但一旦提出可行的解决方案,我就会将其删除。
刚刚遇到了同样的问题,偶然发现了解决方案。只需让用户打开自签名网站,单击“显示更多”和“接受风险并继续”即可。这样做之后,fetch
请求的处理就像没有出过任何问题一样。
它适用于火狐浏览器:
和铬:
此方法只是警告您必须进行设置,并且在 Chrome 上,即使页面的其余部分是安全的,它也会显示“不安全”。
但如果您在本地需要 HTTPS,这就像一个魅力。希望这对从 Google 来到这里的人有所帮助:)
EDIT:
另外值得一提的是,我在本地主机上测试了它,但它在任何地方都可以工作。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)