我是否必须添加一个后置过滤器以将所有响应内容类型更改为json?

时间:2016-01-05 10:06:27

标签: laravel laravel-4

我正在使用laravel 4.2,我最近发现我没有在所有我的JSON API请求中获得'content-type':'application / json'。

因此...

这应该是开箱即用还是我应该自己添加一个过滤器?

我的选择是将我的代码中的所有响应更改为响应:: json()

最简单的解决方案是添加一个后置过滤器,用于检查响应是否为json并更改标题

json_decode($response->getContent());
if ( json_last_error() == JSON_ERROR_NONE ) {
    $response->headers->set('Content-Type','application/json');
}

这似乎为每个请求增加了一些额外的开销。还有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

Laravel已经拥有了你所需要的东西。

Response::json($your_data)

docs

中详细了解相关信息

Laravel会检查您的数据是JsonableInterface还是ArrayObject还是仅array,并将其转换为json并设置标题。