How to tell if an XMLHTTPRequest hit the browser cache

后端 未结 5 1566
别跟我提以往
别跟我提以往 2020-12-25 12:13

If it possible to tell (within javascript execution) if a GET XMLHTTPRequest hit the browser cache instead of getting its response from the server?

5条回答
  •  爱一瞬间的悲伤
    2020-12-25 13:17

    From the XMLHttpRequest spec:

    For 304 Not Modified responses that are a result of a user agent generated conditional request the user agent must act as if the server gave a 200 OK response with the appropriate content.

    In other words, the browser will always give status code 200 OK, even for requests that hit the browser cache.

    However, the spec also says:

    The user agent must allow author request headers to override automatic cache validation (e.g. If-None-Match or If-Modified-Since), in which case 304 Not Modified responses must be passed through.

    So, there is a workaround to make the 304 Not Modified responses visible to your JavaScript code.

提交回复
热议问题