2015-10-13 15 views
5

Tôi đang sử dụng yii2 và apache cho máy chủ của mình. Khi tôi cố gắng thay đổi tiêu đề HTTP, không có gì thay đổi.Tiêu đề HTTP không bị thay đổi: yii2

Yii::$app->response->headers->set('Pragma', 'cache'); 

Mặc định Pragma: no-cache vẫn còn. Đây là cả trên bộ điều khiển hoặc tập tin cấu hình của tôi. Tôi đã thử đề xuất thay đổi tiêu đề trực tiếp bằng cách sử dụng

headers("Pragma: cache"); 

Điều này hoạt động hoàn hảo, điều gì có thể gây ra vấn đề khi sử dụng Lớp phản hồi trong Yii2?

+0

Liệu nó làm việc khi bạn sử dụng PHP truyền thống 'header ("pragma: cache"); 'sử dụng? –

+1

@ Cédric cảm ơn rất nhiều vì điều đó, tôi đã không sử dụng nó trước và có nó hoạt động. Hãy để tôi cập nhật câu hỏi của tôi cho phù hợp vì vấn đề phải là khuôn khổ. – learner

+0

@learner Bạn có chắc chắn rằng bạn không nhận được bất kỳ thông báo lỗi nào không? bạn đã thêm 'sử dụng Yii;'? –

Trả lời

0

Dường như bạn có một mã khác đang sửa đổi tiêu đề (rõ ràng hoặc ngầm). Kiểm tra lớp HeaderCollection, tôi không thấy lý do nào tại sao nó không hoạt động. Vì vậy, hãy kiểm tra mã sau dòng đã đăng và thấy rằng nó không sửa đổi cùng một tiêu đề.

Nếu bạn không đăng mã có liên quan và nêu rõ phiên bản Yii2, đây là cách tốt nhất tôi có thể làm để trợ giúp!

1

bạn phải trước khi thay đổi tiêu đề, đặt format thuộc tính trong lớp phản hồi.

trong yii2 dẫn sử dụng:

FORMAT_RAW: dữ liệu sẽ được coi là nội dung câu trả lời mà không cần bất kỳ chuyển đổi. Không có tiêu đề HTTP bổ sung nào sẽ được thêm.

http://www.yiiframework.com/doc-2.0/yii-web-response.html#$format-detail

dụ:

Yii::$app->response->format = yii\web\Response::FORMAT_RAW; 
Yii::$app->response->headers->set('Pragma', 'cache'); 
Các vấn đề liên quan