水影鸣人
水影鸣人
  • 发布:2015-04-16 10:39
  • 更新:2015-04-16 16:26
  • 阅读:2975

xmlhttprequest请求超时

分类:HTML5+

在使用xmlhttprequest发送请求之前,设置超时时长xhr.timeout=100000,100秒,但是在发送请求后,请求确实能够得到服务器的响应并成功,也就是readyState能够等于4,但是却无法使status等于200,也就是说,请求能够得到服务器响应但是无法接收到服务器的返回。请问为什么设置了超时时长但是感觉请求还是接收不到返回呢?

2015-04-16 10:39 负责人:无 分享
已邀请:
Android_磊子

Android_磊子

不应该跟设置超时时间有关系的,我使用http://www.dcloud.net.cn/地址、百度地址均能正常返回。还请自行尝试其他地址。

  • 水影鸣人 (作者)

    因为我的这个请求会在服务器那边经过复杂的处理逻辑,所以可能需要几秒才能得到服务器的响应,但是服务器响应之后,这边的readyState可以变为4,只是status不能等于200,也就是获取不到服务器的返回了。

    2015-04-16 16:15

DCloud_UNI_FXY

DCloud_UNI_FXY

xhr.timeout只是设置了客户端的请求超时,你还应该排查你服务端的请求超时设置。

比如你客户端设置了100秒超时,但是服务端设置的是10秒。那客户端的100秒超时自然没啥用了。

服务端有响应,但响应内容为空,你应该排查服务端设置与代码,建议可以用浏览器或postman模拟请求测试

  • 水影鸣人 (作者)

    服务端没有超时设置,对于客户端的每次请求都能做出返回。

    2015-04-16 16:24

  • DCloud_UNI_FXY

    服务端有响应,但响应内容为空,你应该排查服务端设置与代码,建议可以用浏览器或postman模拟请求测试

    2015-04-16 16:28

  • 水影鸣人 (作者)

    回复 DCloud_UNI_FXY:我发现客户端这边自请求发出到请求成功,每次都是20秒,就好像他到了20秒,不管什么情况,请求就结束了,而这个时候服务端还没有开始返回数据。我设置超时时间不论多少都不起作用。

    2015-04-16 17:57

  • DCloud_UNI_FXY

    你用浏览器或者postman测试一下你的请求是否正常

    2015-04-16 18:07

  • 水影鸣人 (作者)

    回复 DCloud_UNI_FXY:这个问题随着4月16日HBuilder的新版本发布之后得到了解决。

    2015-04-17 10:13

该问题目前已经被锁定, 无法添加新回复