在使用xmlhttprequest发送请求之前,设置超时时长xhr.timeout=100000,100秒,但是在发送请求后,请求确实能够得到服务器的响应并成功,也就是readyState能够等于4,但是却无法使status等于200,也就是说,请求能够得到服务器响应但是无法接收到服务器的返回。请问为什么设置了超时时长但是感觉请求还是接收不到返回呢?
- 发布:2015-04-16 10:39
- 更新:2015-04-16 16:26
- 阅读:2975
xhr.timeout只是设置了客户端的请求超时,你还应该排查你服务端的请求超时设置。
比如你客户端设置了100秒超时,但是服务端设置的是10秒。那客户端的100秒超时自然没啥用了。
服务端有响应,但响应内容为空,你应该排查服务端设置与代码,建议可以用浏览器或postman模拟请求测试
-
水影鸣人 (作者)
回复 DCloud_UNI_FXY:我发现客户端这边自请求发出到请求成功,每次都是20秒,就好像他到了20秒,不管什么情况,请求就结束了,而这个时候服务端还没有开始返回数据。我设置超时时间不论多少都不起作用。
2015-04-16 17:57
水影鸣人 (作者)
因为我的这个请求会在服务器那边经过复杂的处理逻辑,所以可能需要几秒才能得到服务器的响应,但是服务器响应之后,这边的readyState可以变为4,只是status不能等于200,也就是获取不到服务器的返回了。
2015-04-16 16:15