0

我有一个资源丰富的控制器,想为我的 API 响应添加另一个路由。但似乎当我在浏览器中输入 localhost/mylaravel/api/updates 时,它确实显示输出不在 application/json 内容类型中。我在 firebug 中查看并验证了 JSON 已添加到用 <pre> 标签包裹的 html 正文中。我该如何解决这样的问题?

路由.php

 Route::group(array('prefix' => 'api'), function() {

        Route::get('updates', 'PluginsController@updatesNotification');

});

Route::resource('plugins', 'PluginsController');

插件控制器.php

class PluginsController extends BaseController {
public function index() { ... }
public function create() { ... }
...
...
...
public function updatesNotification() {
        return Response::json(array('name' => 'Steve', 'state' => 'CA'));
    }
4

2 回答 2

1

我认为这就是发送的 JSONapplication/json在 Firefox 中呈现的方式。Response::json应该将其正确发送为application/json. 在 Firefox 中,我可以根据字体来区分。尝试在其中创建test.html并放入除 JSON 之外的任何内容,您会看到它是常规字体,<pre>周围没有 no。

于 2013-05-27T02:25:23.903 回答
0
JSON <pre> tag is displayed in Firebug only.

You can direclty use the output object of Response::json()  to manipulate and render data. 

当我使用 Response::json() 方法返回 AJAX 响应以使用 Jqplot 库绘制图形时,它对我来说很好。

My code is 

return View::make('jqplot::line')->with('data', Response::json($tdata));
于 2013-05-28T11:29:17.247 回答