首页 > 解决方案 > 为什么 Lumen 将带有标题的响应发送到正文中?

问题描述

当我调用 Lumen 时,无论使用哪种方法,它总是返回带有响应的标头。为什么?

这是路由器:

$router->group(['prefix' => 'test'], function() use ($router) {

    $router->post('an', 'MyController@anAction');
});

这是我的控制器的一个动作

public function anAction(Request $request): string {

    $return['result'] = true;
    return response()->json($return);
}

这是回应:

HTTP/1.0 200 OK Cache-Control: no-cache, private Content-Type: application/json Date: Thu, 02 May 2019 14:54:35 GMT {"result":true}

我怎么能有这个?

{"result":true}

标签: http-headershttpresponselumen

解决方案


我刚遇到这个问题,是由函数的类型提示返回引起的:

public function anAction(Request $request): string {

那是将响应转换为字符串,而不是实际的 Illuminate\Http\JsonResponse。将其更改为此解决了我的问题。

public function anAction(Request $request): \Illuminate\Http\JsonResponse {

推荐阅读