2013-08-24 29 views
7

Tôi đang sử dụng dịch vụ góc để GET tài nguyên qua api còn lại. Máy chủ đặt tiêu đề ETag cho một số giá trị và nó cũng đặt Cache-Control: no-cache trong phản hồi của nó.trình duyệt Chrome không gửi 'If-None-Match' cho xhr

Điều này hoạt động như mong đợi khi sử dụng Firefox, nhưng khi tôi truy cập cùng một ứng dụng bằng Chrome, ứng dụng này không gửi If-None-Match. Tôi đã thử trên các kênh phát triển và ổn định Chrome hiện tại trên cả máy Mac và hộp Ubuntu, và nó giống nhau trên cả hai, trong khi Firefox đã thêm chính xác If-None-Match.

Hiện tại, có các tài nguyên không phải xhr/tĩnh khác được tìm nạp có điều kiện và tất cả các yêu cầu đó đều nhận được phản hồi 304 NOT MODIFIED chính xác.

Tôi có thể làm gì để biết thêm thông tin về lý do tại sao Chrome không gửi tiêu đề If-None-Match chỉ cho các yêu cầu XHR không?

+0

Tôi có cùng một vấn đề –

Trả lời

4

Nếu bạn đang phát hành truy vấn Ajax trong Chrome qua HTTPS, bất kỳ lỗi chứng chỉ nào, chẳng hạn như sử dụng chứng chỉ tự ký trên máy chủ API của bạn, ngăn phản hồi được lưu vào bộ nhớ cache. Điều này có vẻ là do thiết kế.

Rõ ràng một Chrome defectexisted nhưng fixed trong Webkit và làm cho nó vào Chromium/Chrome vào năm 2010.

question Một đề nghị thiết lập If-Modified-Since và If-None-Match tiêu đề bằng tay sử dụng ifModified jQuery: true và bộ nhớ cache: các tùy chọn đúng. Rất tiếc, điều này sẽ không vượt quá hành vi dự định của Chrome để không lưu lại các phản hồi HTTPS từ máy chủ có chứng chỉ tự ký.

Thử nghiệm trên máy chủ có chứng chỉ SSL đã ký hợp lệ đã giải quyết được vấn đề cho tôi; Chrome đã nhận được 304 nội dung văn bản/html như mong đợi, bằng cách sử dụng các phương thức jQuery AJAX mặc định.

+0

Tôi đã thử và nó đúng như @ Darren nói. – frustigor

Các vấn đề liên quan