如何从Laravel 4 REST API返回JSON响应?

时间:2014-12-06 04:29:29

标签: php laravel-4

我有一个Laravel RESTful API设置,需要将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!"}

我不希望我的回复中的所有标题都像那样。或者我收到并试图错误地解析它。我在这里做错了什么?

2 个答案:

答案 0 :(得分:0)

好的,这是一个愚蠢的错误,不是使用REST API,而是使用cURL调用API。

如果您遇到这种情况,请检查并确保您没有:

curl_setopt($ch, CURLOPT_HEADER, 1);

这将输出带有响应的标题并搞乱你的一天。我希望这有助于其他人。

答案 1 :(得分:0)

我的回报是这样的:

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

只需将数组存储到变量中,然后将该变量调用到响应中。