首页 > 解决方案 > 请求返回 400 但未到达在 localhost 上运行的服务器(不同浏览器的行为不同)

问题描述

我的服务器在 localhost:8080 上运行(localhost:3000 请求通过 package.json 中的代理定义重定向到 localhost:8080)并将 ReactJS 应用程序的请求发送到 localhost 上的此服务器。在所有浏览器中突然开始出现这个问题。请求(keepalive 请求和其他 1 或 2 个请求除外)返回 400,但根本没有到达服务器。例如。在 Chrome 中,所有请求都会发生这种情况,但在 Firefox 中,一些请求会返回状态代码 200 并且响应数据没有问题,但其他请求的行为如上所述。

我正在使用 Windows 10。

所有浏览器都有问题:Chrome、Firefox、IE、Edge、Opera、Chromium

我尝试关闭防御者防火墙和 AVG。

请求示例:

铬合金

Request URL: http://localhost:3000/api/essp/database?pageSize=1000
Request Method: GET
Status Code: 400 Bad Request
Request Headers:
Accept: */*
Accept-Encoding: gzip, deflate, br
Accept-Language: cs-CZ,cs;q=0.9
authorization: Bearer (token hidden for privacy reasons)
authorizationjwt: Bearer (token hidden for privacy reasons)
Connection: keep-alive
content-type: application/json
Cookie: _ga=GA1.1.1056630521.1566899267
Host: localhost:3000
Referer: http://localhost:3000/systematic-evidence
Sec-Fetch-Mode: cors
Sec-Fetch-Site: same-origin
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.132 Safari/537.36

相同的请求,但在 Firefox 中

Request URL: http://localhost:3000/api/essp/database?pageSize=1000
Request Method: GET
Status Code: 200 OK
Request Headers:
Accept  
*/*
Accept-Encoding 
gzip, deflate
Accept-Language 
cs,sk;q=0.8,en-US;q=0.5,en;q=0.3
Authorization   
Bearer (token hidden for privacy reasons)
Authorizationjwt    
Bearer (token hidden for privacy reasons)
Connection  
keep-alive
Content-Type    
application/json
Cookie  
_ga=GA1.1.647499021.1563197779
Host    
localhost:3000
Referer 
http://localhost:3000/systematic-evidence
User-Agent  
Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/68.0

Firefox 中的不同请求(此请求在 Chrome 中也返回 400)

Request URL: http://localhost:3000/api/essp/database/136adc97-75f7-4235-a48f-32e01c0f6add
Request Method: GET
Status Code: 400 Bad Request
Request Headers:
Accept  
*/*
Accept-Encoding 
gzip, deflate
Accept-Language 
cs,sk;q=0.8,en-US;q=0.5,en;q=0.3
Authorization   
Bearer (token hidden for privacy reasons)
Authorizationjwt    
Bearer (token hidden for privacy reasons)
Connection  
keep-alive
Content-Type    
application/json
Cookie  
_ga=GA1.1.647499021.1563197779
Host    
localhost:3000
Referer 
http://localhost:3000/systemat…97-75f7-4235-a48f-32e01c0f6add
User-Agent  
Mozilla/5.0 (Windows NT 10.0; …) Gecko/20100101 Firefox/68.0

我不是开发人员,但有人告诉我这在服务器(本地主机上)上没有问题,它只是我电脑中的一些东西。什么可能导致这个问题?可能是 Windows 中的某些东西,或者某些应用程序干预了请求并返回 400 而没有到达服务器?我怎样才能发现或解决这个问题?

感谢您提供任何有用的答案

编辑:不是 CORS 问题,因为返回 400 的请求根本没有到达服务器。还有一些非简单请求在少数浏览器(例如 Firefox)中返回 200 没有问题。

解决方案:通过将 Windows 恢复为出厂设置来解决。

标签: reactjsrequestlocalhosthttp-status-code-400

解决方案


推荐阅读