Tôi đang sử dụng google chrome và tôi nhận thấy rằng mỗi khi tôi làm một yêu cầu XHR tôi nhận được các tiêu đề sau đặt theo yêu cầu:jQuery XMLHttpRequest Cache-Control bị bỏ qua
Cache-Control: no-cache
Pragma: no-cache
Nếu bạn đọc spec tại http://www.w3.org/TR/XMLHttpRequest/ nó nói như sau
Nếu user agent thực hiện một bộ nhớ cache HTTP nó nên tôn trọng tiêu đề cache-Control trong tiêu đề yêu cầu tác giả (ví dụ cache-Control: no-cache bỏ qua bộ nhớ cache). Nó không được tự động gửi các tiêu đề yêu cầu Cache-Control hoặc Pragma trừ khi người dùng cuối yêu cầu rõ ràng hành vi như vậy (ví dụ: bằng cách tải lại trang).
Vâng, tôi đang cố gắng như sau:
$.ajax(myUrl, {
type: 'get',
dataType: 'json'
cache: true,
headers: {
'Cache-Control': 'max-age=200'
}
})
Như bạn có thể thấy tôi đang thiết lập một cách rõ ràng tiêu đề Cache-Control với hy vọng nhận được một bản sao lưu trữ tài nguyên của tôi. Vâng, Chrome dường như bỏ qua tiêu đề Cache-Control.
Có thể gửi tiêu đề Cache-Control: no-cache
khi thực hiện yêu cầu XHR không?
Có, lưu ý rằng Firebug cũng có "Disable Browser Cache" trong menu "Net". Tôi cũng bị cắn bởi cái này. – harpo
Tôi đã cố gắng tìm ra lý do tại sao tìm nạp gốc() không trả về dữ liệu từ bộ nhớ cache, ngay cả khi các tiêu đề Bộ nhớ cache-Kiểm soát được đặt chính xác bởi máy chủ. Cảm ơn bạn đã giúp sửa lại sự giám sát này, điều đó khiến tôi phát điên. –
Tôi đã dành quá nhiều thời gian để theo dõi điều này. Cảm ơn bạn! –