我正在尝试制作只返回JSON的Yii2 API,所以在配置中我设置了这样的响应组件:
'response' => [
'format' => yii\web\Response::FORMAT_JSON,
'charset' => 'UTF-8',
]
然而,Yii2的yii\filter\ContentNagotiator
仍会检查客户端标头,如果客户端请求application\xml
,它会将响应序列化为XML。但这是此API的不良行为。
有没有办法强制JSON
响应?
答案 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
祝你好运,玩得开心!