Chrome浏览器出现net::ERR_CONNECTION_CLOSED错误,请求排查原因
解决Chrome中
net::ERR_CONNECTION_CLOSED错误的排查方案 嘿,这个错误我之前也碰到过,大概率是你的前端和本地后端服务之间的连接出了问题,咱们一步步来排查:
1. 先确认后端服务是否正常运行
- 直接在Chrome地址栏输入
https://localhost:12345/api/insertQuestion访问接口,如果打不开,那肯定是后端服务没启动,或者端口号写错了(比如是不是把12345写成别的数了?) - 因为你用的是HTTPS,本地自签名证书大概率会被Chrome拦截,你可以点击地址栏的警告,选择“高级”->“继续访问”,再试试能不能通接口。
2. 检查AngularJS的请求逻辑是否正确
你给的代码只写到定义参数的部分,我猜你是通过userFactory来发请求的吧?那得确保工厂里的请求写法没毛病,比如用$http的话应该是这样:
app.factory('userFactory', function($http) { return { submitQuestion: function(apiUrl, questionData) { return $http.post(apiUrl, questionData) .then(res => res.data) .catch(err => { console.error('请求失败:', err); throw err; }); } }; });
然后在控制器里调用的时候,要把参数打包好再传:
$scope.pushData = function(){ // 把页面上的参数整理成后端需要的格式 const questionData = { qstn: $scope.qstn, opt1: $scope.opt1, opt2: $scope.opt2 // 别忘了加上其他需要的参数哦 }; userFactory.submitQuestion(QSTNURL, questionData) .then(result => { console.log('数据提交成功啦:', result); }) .catch(err => { console.log('提交失败:', err); }); };
这里要注意:
- 后端接口是不是用
POST方法?如果是GET的话,参数传递方式得改成URL参数。 - 你传的数据结构是不是后端接口期望的?比如字段名有没有写错,是不是要JSON格式(AngularJS的
$http.post默认会设置Content-Type: application/json,但如果是自定义请求得检查下)。
3. 用Chrome开发者工具深挖请求细节
按F12打开开发者工具,切到Network标签,然后触发pushData按钮,看看对应的请求:
- 核对请求URL是不是完全正确的
https://localhost:12345/api/insertQuestion - 看请求的状态详情,除了
ERR_CONNECTION_CLOSED,有没有更具体的提示? - 检查Request Headers和Request Payload,确认参数和请求头都符合要求。
4. 排查其他可能的干扰因素
- 防火墙或杀毒软件可能会拦截本地12345端口,试试临时关闭防火墙再测试。
- 后端服务可能崩溃或者连接数满了,重启一下后端服务试试。
- Chrome缓存搞的鬼,打开无痕模式(Ctrl+Shift+N)再测试,排除缓存影响。
内容的提问来源于stack exchange,提问作者Mani Kant Tiwari
相关产品推荐
相关产品推荐

