场景
使用fetch请求接口,控制台报错net::ERR_EMPTY_RESPONSE。
但是使用Swagger请求接口正常,
使用Postman请求接口也正常。
排查问题
- 是不是因为浏览器多重跨域导致。因为当前项目后端地址涉及多重转发。
- 是不是因为Access-Control-Allow-Header, 没有允许对应的请求头参数。
- 是不是因为Access-Control-Allow-Origin,没有设置对应的域名导致。
排查结论
- nginx和后端同时配置了CORS请求头,取消了nginx配置的CORS,只使用后端的CORS配置但是问题依旧。
- 补充了对应的请求头参数,但是接口依然报错。
- Access-Control-Allow-Origin已经设置为*,接口还是没有办法请求通。
没有头绪,百度和Google了一下说是后端接口没有返回参数。
再次提出问题
是不是因为OPTIONS请求被拒绝?
尝试解决问题
使用POSTMAN,请求对应方法的OPTIONS请求,发现确实是因为OPTIONS请求被拒绝导致,联系服务器运营处理解决。
总结
使用fetch发送请求的时候,如果设置了headers的数据或者Content-Type类型为application/json,fetch请求都会向浏览器中发送一个OPTIONS请求,来询问服务器后续请求能否成立。文章来源:https://www.toymoban.com/news/detail-404993.html
参考资料
OPTIONS请求介绍文章来源地址https://www.toymoban.com/news/detail-404993.html
到了这里,关于接口请求报错 net::ERR_EMPTY_RESPONSE的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!