如何在Yii2 api模块上设置HTTP标头Expires?

时间:2015-10-13 11:34:21

标签: php yii2

我正在使用此

在我的课程init()上初始化我的Api模块
public function init()
{
    //parent::init();
    Yii::$app->request->parsers = ['application/json' => 'yii\web\JsonParser'];
    Yii::$app->request->enableCsrfValidation = false;
    Yii::$app->response->format = Response::FORMAT_JSON;
    $headers = Yii::$app->response->headers;
    $headers->set('Expires', gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60)));
    Yii::$app->user->enableSession = false;
    Yii::$app->user->loginUrl = null;
}

这仍然给了我

Expires → Thu, 19 Nov 1981 08:52:00 GMT

编辑:我尝试过使用下面的php方法标题,但它确实有用。将应用程序类型设置为JSON也只有在我像这样直接访问标题时才有效。

header("Pragma: cache");
header("Content-Type: application/json");
header('Expires: '.gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60)));

我已尝试将此设置为我的操作。我还想过在我的网络配置上设置响应组件过期但不知道如何输入值。当我尝试设置标题属性时给我设置只读属性错误。我需要的是为android上的我的排球请求设置缓存。如何在我的模块或应用程序上实现此目的?

1 个答案:

答案 0 :(得分:0)

你错了,应该是:

$headers->set('Expires', gmdate('D, d M Y H:i:s \G\M\T', time() + (60 * 60)));