Как вернуть ответ JSON от REST API Laravel 4?

0

У меня есть настройка API Laravel RESTful, которая должна возвращать данные в формате JSON в приложение на одном из моих поддоменов (и, следовательно, не в самом приложении Laravel).

В REST я возвращаюсь, как:

return \Response::json(array(
    "status"  => "success",
    "type"    => "client",
    "message" => "Nothing to see here!"
));

В моем классе в субдоменном приложении я просто пытаюсь вернуть этот ответ в представление, распечатать вывод для тестирования.

Надеюсь, что я просто верну JSON, но когда я сделаю простой:

echo $resp;

Я ничего не получаю

Если я сделаю:

print_r( $resp );

или

json_decode( $resp );

Я получил:

HTTP/1.1 200 OK
Server: nginx/1.6.2
Content-Type: application/json
Transfer-Encoding: chunked
Connection: keep-alive
X-Powered-By: PHP/5.4.35
Access-Control-Allow-Origin: *
Cache-Control: no-cache
Date: Sat, 06 Dec 2014 04:18:15 GMT
Set-Cookie: laravel_session=eyJpdiI6Ik5DdDFGK2tJQ3ZCVkJPQnRtZHRaU2c9PSIsInZhbHVlIjoiT2tXSTJWYzRKUXZncG9NOFZBYkhOUTZRaUg1c3NmUXlHTjF5bzYyaTZRYUY4S3VBMEdwdjdwdXNUNHkwblppV1I5YUFsY2dodGNyRHh5SmZYeGFjcWc9PSIsIm1hYyI6Ijc0Mzg3MGNlNTBiYTEyNTE3MzNhZDVjNjUzNzMwNzk0ZTMwN2MwYmFiNDIyMGE0N2MyNTQxMDNlMDdiOGFmOTQifQ%3D%3D; expires=Sat, 06-Dec-2014 06:18:15 GMT; path=/; httponly

{"status":"success","type":"client","message":"Nothing to see here!"}

Я не хочу, чтобы все эти заголовки были в моем ответе подобным образом. Или я получаю и пытаюсь разобрать его неправильно. Что я здесь делаю неправильно?

Теги:
laravel-4

2 ответа

0

Мое возвращение таково:

return Response::json(array($data));

Просто сохраните массив переменной и вызовите эту переменную на ответ.

0

Хорошо, это была глупая ошибка не с REST API, а с вызовом cURL API.

Если это когда-нибудь случится с вами, просто проверьте и убедитесь, что у вас нет:

curl_setopt($ch, CURLOPT_HEADER, 1);

Это приведет к выпуску заголовков с ответом и испортит ваш день. Надеюсь, это поможет другим.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню