diff --git a/library/think/App.php b/library/think/App.php index b6e28404..61ef4808 100644 --- a/library/think/App.php +++ b/library/think/App.php @@ -128,11 +128,13 @@ class App // 输出数据到客户端 if ($data instanceof Response) { return $data; - } else { + } elseif(!is_null($data)) { // 默认自动识别响应输出类型 $isAjax = $request->isAjax(); $type = $isAjax ? Config::get('default_ajax_return') : Config::get('default_return_type'); - return Response::create( is_null($data) ? '' : $data, $type); + return Response::create($data, $type); + } else { + return Response::create(); } } diff --git a/library/think/Response.php b/library/think/Response.php index c986e5a8..2a2c7067 100644 --- a/library/think/Response.php +++ b/library/think/Response.php @@ -51,15 +51,12 @@ class Response public function __construct($data = [], $type = '', $options = []) { $this->data = $data; - if (empty($type)) { - $isAjax = Request::instance()->isAjax(); - $type = $isAjax ? 'json' : 'html'; - } - $this->type = strtolower($type); + $this->type = empty($type) ? 'null' : strtolower($type); if (isset($this->contentTypes[$this->type])) { $this->contentType($this->contentTypes[$this->type]); } + if (!empty($options)) { $this->options = array_merge($this->options, $options); } @@ -77,11 +74,7 @@ class Response */ public static function create($data = [], $type = '', $options = []) { - if (empty($type)) { - $isAjax = Request::instance()->isAjax(); - $type = $isAjax ? 'json' : 'html'; - } - $type = strtolower($type); + $type = empty($type) ? 'null' : strtolower($type); if (!isset(self::$instance[$type])) { $class = (isset($options['namespace']) ? $options['namespace'] : '\\think\\response\\') . ucfirst($type);