Laravelでjson形式のレスポンスを返却する際に、内部でjson_encode関数が利用されるため、スラッシュがエスケープされて表示されます。
return response()->json([
"active" => true,
"iss" => "http://www.yahoo.co.jp/",
"scope" => "openid"
]);
レスポンス
{
"active":true,
"iss":"http:\/\/www.yahoo.co.jp\/",
"scope":"openid"
}
json_encodeのJSON_UNESCAPED_SLASHESを指定すると良さそうです。
ドキュメントを確認すると以下の引数定義のため、
省略していたレスポンスコードなどをまとめて指定するようにします。
response()->json($data, $status, $headers, $options))
実装
return response()->json([
"active" => true,
"iss" => "http://www.yahoo.co.jp/",
"scope" => "openid"], 200, ['Content-Type' => 'application/json'], JSON_UNESCAPED_SLASHES);
レスポンス
{
"active":true,
"iss":"http://www.yahoo.co.jp/",
"scope":"openid"
}
成功しました。JSON_PRETTY_PRINTをよく指定するようなので、合わせて指定する場合は以下のようになります。
return response()->json([
"active" => true,
"iss" => "http://www.yahoo.co.jp/",
"scope" => "openid"], 200,
['Content-Type' => 'application/json'], JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT);
以上です。





