EC2上Flask服务Fetch请求被拒:net::ERR_CONNECTION_REFUSED问题求助
问题原因分析
核心原因1:127.0.0.1的指向错误
你在前端代码里写的fetch('http://127.0.0.1:5000'),在浏览器执行时,127.0.0.1指的是你的Windows本地电脑,而不是运行Flask服务的EC2实例。浏览器的JS代码是在本地环境运行的,所以会尝试连接你自己电脑的5000端口,但你的Windows机器上根本没跑这个Flask服务,直接就被拒绝连接了。
核心原因2:HTTPS页面不允许发起HTTP请求
你是通过https://example.com/test.html打开的页面,属于HTTPS安全环境,但fetch请求用的是HTTP协议。现代浏览器有混合内容拦截机制,会阻止HTTPS页面加载HTTP资源,就算地址指向正确,这个请求也会被浏览器拦截。
额外问题:返回格式与解析方式不匹配
你的Flask接口返回的是纯文本字符串"Hello, World!",但前端用了response.json()去解析响应内容。就算前面的连接问题都解决了,这里也会因为无法把纯文本解析成JSON而报错,进入catch分支。
内容的提问来源于stack exchange,提问作者ShuoYuWu
相关产品推荐
相关产品推荐

