>[danger] 该组件为系统组件,在组件树中只可命名为 response ,不可修改为其他名称。 ## 响应 响应组件用来将控制器返回的数据、设置的HTTP报头发送至客户端。 | 类 | 调用 | 运行环境 | | --- | --- | --- | | Mix\Http\Message\Response\HttpResponse | app()->response | mix-httpd | | Mix\Http\Message\Response\Compatible\HttpResponse | app()->response | Apache/PHP-FPM | ## 依赖注入配置 [>> 到 GitHub 查看默认配置 <<](https://github.com/mix-php/mix/blob/master/applications/http/config/main_coroutine.php#L184) 参数 `defaultFormat` 全部常量明细: - Mix\Http\Message\Response::FORMAT_HTML - Mix\Http\Message\Response::FORMAT_JSON - Mix\Http\Message\Response::FORMAT_JSONP - Mix\Http\Message\Response::FORMAT_XML ## 设置响应格式 当开发API接口时,通常需要响应 `JSON`、`JSONP`、`XML` 格式,这时可在控制中指定响应格式,代码如下: ~~~ public function actionIndex() { app()->response->format = Mix\Http\Message\Response::FORMAT_JSON; return ['errcode' => 0, 'errmsg' => 'ok']; } ~~~ 也可以在App配置文件中的 `defaultFormat` 字段中定义默认的响应格式: ~~~ // 默认输出格式 'defaultFormat' => Mix\Http\Message\Response::FORMAT_JSON, ~~~ ## 重定向 重定向到首页。 ~~~ app->response->redirect('/'); ~~~ ## 设置状态码 ~~~ // 方法1 app()->response->statusCode = 404; // 方法2 app()->response->setStatusCode(404); ~~~ ## 设置响应格式 ~~~ // 方法1 app()->response->format = Mix\Http\Message\Response::FORMAT_JSON; // 方法2 app()->response->setFormat(Mix\Http\Message\Response::FORMAT_JSON); ~~~ ## 设置响应内容 ~~~ // 方法1 app()->response->content = '<html>...</html>'; // 方法2 app()->response->setContent('<html>...</html>'); ~~~ ## 设置报头 ~~~ // 设置单个 app->response->setHeader('Content-Type', 'application/json;charset=utf-8'); // 设置全部 app->response->setHeaders(['Content-Type' => 'application/json;charset=utf-8']); ~~~ ## 设置 `Cookie` ~~~ app->response->setCookie($name, $value, $expires, $path, $domain, $secure, $httpOnly); ~~~