http-headers - 为什么 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}
解决方案
我刚遇到这个问题,是由函数的类型提示返回引起的:
public function anAction(Request $request): string {
那是将响应转换为字符串,而不是实际的 Illuminate\Http\JsonResponse。将其更改为此解决了我的问题。
public function anAction(Request $request): \Illuminate\Http\JsonResponse {
推荐阅读
- python - 如何替换其他列满足特定条件的 NaN 值?
- c# - Application_Error() 不会触发
- npm - npm、package.json 以及支持多个大版本的第三方库,每个版本的测试?
- scikit-learn - 使用 svm 的分类精度低
- c++ - Arduino 上的结构:function() '没有命名类型'
- javascript - 我应该如何让我的按钮消失并显示计算?
- python - 从阿里巴巴抓取类别及其网址并将其放在两列中
- git - 将分支 B 合并到分支 A
- javascript - Redux:连接组件列表的性能
- javafx - 为什么我的图像在拖放时不断重新定位在我的 AnchorPane 中?