response参数配置
方式一、全局配置
用于接口开发
适用:只有所有请求都是application/json类型时可用。
$config = [ 'components' => [ 'response' => [ 'format' => 'json' ], ], ];
方式二,通过前置操作实现。
适用:只有控制器中所有请求都是application/json类型时可用。
前置函数
public function beforeAction($action) { return Yii::$app->response->format = yiiwebResponse::FORMAT_JSON; }
行为(通过过滤器来实现)
public function behaviors() { return [ ['class' => ContentNegotiator::className(), 'formats' => ['application/json' => Response::FORMAT_JSON, ], ], ]; }
方式三、在方法中配置。
适用:只适用与json返回,注意排除render返回。
Yii::$app->response->format = yiiwebResponse::FORMAT_JSON;
注意:yii内置的方法返回的直接是json对象,而使用hson_encode返回的是json字符串,需要在ajax请求中增加dataType:'json'属性,接收的才是json对象。