【发布时间】:2013-07-16 06:32:13
【问题描述】:
我有一个 jquery ajax 请求:
var settingsContainer = {};
settingsContainer.font_family = $j("#supercontainer").css("font-family");
var settingsContainerJson = JSON.stringify(settingsContainer);
var BASE = "<?php echo Request::Root(); ?>/";
return $j.ajax
({
type: 'PUT',
dataType: 'JSON',
data: { settingsContainer: settingsContainerJson },
url: BASE+'pages/update/{{ $page_id }}',
success: function(data)
{
alert(data);
}
});
这转到我的路由:
Route::put("/pages/update/{id}", array('as'=>'ajax', 'uses'=>'PageController@putSave'));
然后转到我的控制器:
public function putSave($id) {
$a = json_decode(Input::get('settingsContainer'));
return $a['font_family'];
}
这目前在 Laravel 4 中不返回任何内容。如果我在我的 jquery 调用中删除 dataType: json ,它确实会返回一些东西,所以它似乎以某种方式中断了 JSON 数据处理。建议?谢谢!
【问题讨论】:
-
你没有收到 500 错误吗?
-
不,它只是不返回任何东西。如果我用return $a替换return $a ['font_family'],它会输出2。我想我盯着这个有点太久了,但我想我可以在解码后访问$ a,就好像它是一个数组一样...
-
尝试使用正确的标头和 JSON 结构从控制器返回:
return Response::json(array($a['font_family']));