【问题标题】:How does XMLHttpRequest know when to invoke its callback?XMLHttpRequest 如何知道何时调用其回调?
【发布时间】:2010-11-05 15:53:42
【问题描述】:

据我了解,如果客户端 javascript 代码使用 XMLHttpRequest 发出 POST 请求,它会等待响应,并在完成时将其 readystate 更改为 ReadyState.Complete 并调用回调函数。

我的问题是:它如何确定响应是否完整?它是否返回它获得的第一个 TCP 数据包的内容?或者服务器是否关闭了 tcp 连接从而完成了事务?还是 TCP 数据包内容中有什么特殊的东西告诉 XMLHttpRequest 对象响应已完成?

【问题讨论】:

    标签: http tcp callback xmlhttprequest readystate


    【解决方案1】:

    它要么等待服务器关闭它的连接,要么等待它从响应中读取与响应中的 Content-Length 标头相等的字节数。

    【讨论】:

      【解决方案2】:

      它遵循 HTTP 规范。响应必须具有 Content-Length 或使用 chunked 内容编码。在 HTTP/1.0 中,关闭连接也是一种选择。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-12-28
        • 2020-11-25
        • 2016-04-17
        • 1970-01-01
        • 2019-06-11
        • 1970-01-01
        • 2020-03-11
        • 1970-01-01
        相关资源
        最近更新 更多