laravel4 响应::json(array());不适用于托管

Posted

技术标签:

【中文标题】laravel4 响应::json(array());不适用于托管【英文标题】:laravel4 Response::json(array()); not work in hosting 【发布时间】:2014-03-17 02:05:29 【问题描述】:

托管 我尝试按照示例http://laravel.com/docs/responses#special-responses

来响应托管中的 json
return Response::json(array('name' => 'Steve', 'state' => 'CA'));

但响应头是

和响应:重新加载页面以获取源:httx://xxxx.com 所以,我试试 echo Response::json(array(...)); 结果是

我必须使用它工作:

header('Content-Type: application/json');
echo json_encode($data);

我的本地

我的本​​地主机Response::json(array()); 工作正常!相同的版本 我该怎么办? 请帮帮我。

【问题讨论】:

你能用 php phpinfo(); 查看你的主机和本地安装的内容吗?双方?您的服务器可能缺少 json 扩展名。它应该与 PHP 5.2 及更高版本捆绑在一起,但你知道他们对假设的看法 主机在本地使用 PHP 版本 5.4.15 和我一样。我认为它适用于 laravel 试试这个:return Response::json($data, 200, array('Content-Type' => 'application/json')); 我试过了。但效果不佳。 可能与Varnish有关,但我不能说如何确定它是否是以及如何解决问题。 【参考方案1】:

当你使用 Response::json($yourarray);您将发送带有 json 数据的标头。

如果您没有使用 jquery 或 javascript 来接受响应,而是尝试将数据传递给另一个方法,请尝试:

返回 json_encode($yourarray)

【讨论】:

【参考方案2】:

这可能会解决问题:

return Response::json(array('name' => 'Steve', 'state' => 'CA'))
               ->header('Content-Type', 'application/json');

【讨论】:

以上是关于laravel4 响应::json(array());不适用于托管的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 4 返回 json 作为响应

Laravel 4 获得多个集合

在角度 js 中处理来自 $resource 的数据响应

Laravel 4 JSON 输出格式

返回正确的 JSON 响应

在 Laravel 4.1 中形成 AJAX 后响应周期。*