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
来响应托管中的 jsonreturn 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());不适用于托管的主要内容,如果未能解决你的问题,请参考以下文章