如果要在前面加上/追加數據,你可以使用過濾器的響應。
Route::filter('json.protect',function($route,$request,$response = null)
{
if($response instanceof \Illuminate\Http\JsonResponse) {
$json = ")]}',\n" . $response->getContent();
return $response->setContent($json);
}
});
然後,您可以使用after
屬性將過濾器附加到路線。
Route::get('/test', array('after' =>'json.protect', function()
{
$test = array(
"foo" => "bar",
"bar" => "foo",
);
return Response::json($test);
}));
另外,如果你不想過濾器連接到輸出JSON每個路由,那麼它也可以利用App::after
鉤。
App::after(function($request, $response)
{
if($response instanceof \Illuminate\Http\JsonResponse) {
$json = ")]}',\n" . $response->getContent();
return $response->setContent($json);
}
});
你設法溶膠這是嗎?我也在尋找解決方案.. @gravy – Oguzhan
http://stackoverflow.com/questions/24538305/laravel-how-to-prefix-all-json-responses-to-protect-against-json-injection/24545383 – Whisher
最後,一個答案!我會放棄它。謝謝! – Gravy