为什么Lumen将带有标头的响应发送到正文中?

时间:2019-05-02 15:09:54

标签: http-headers httpresponse 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}

1 个答案:

答案 0 :(得分:1)

我刚遇到这个问题,是由于函数的typehint返回所致:

public function anAction(Request $request): string {

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

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