无论内容标头如何,Yii2强制JSON响应

时间:2016-07-02 02:29:40

标签: json rest yii2 yii2-advanced-app

我正在尝试制作只返回JSON的Yii2 API,所以在配置中我设置了这样的响应组件:

'response' => [
    'format' => yii\web\Response::FORMAT_JSON,
    'charset' => 'UTF-8',
]

然而,Yii2的yii\filter\ContentNagotiator仍会检查客户端标头,如果客户端请求application\xml,它会将响应序列化为XML。但这是此API的不良行为。

有没有办法强制JSON响应?

1 个答案:

答案 0 :(得分:2)

修改控制器中的行为功能:

public function behaviors()
{
    $behaviors = parent::behaviors();

    $behaviors['contentNegotiator']['formats']['text/html'] = Response::FORMAT_JSON;

    return $behaviors;
}

yii2文档中的指南:http://www.yiiframework.com/doc-2.0/guide-rest-response-formatting.html

祝你好运,玩得开心!