基本上我正在尝试使用此 ajax 制作弹出窗口:
$.ajax({
type: 'GET'
url: 'news/read'
dataType: 'json'
cache: false
timeout: 10000
}).done (msg) ->
$("article#pop-read").empty().html msg.view
processing = false
window.history.pushState
path: msg.url
, "", msg.url
false
我正在返回一个 View 值,它的 url 是这样的:
$data = json_encode(array(
'view' => View::make('layouts.read'),
'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;
除了我无法从 laravel 获取 View 值(它在 javascript 中返回 Object object
)之外,这一切都非常有效。但如果我直接像 return View::make('layouts.read')
这样写,它会很好地返回。这是为什么?
另外(不必回答,不是主要问题),当我使用 pushState
时,浏览器上的后退按钮不起作用,这是一个错误吗?
最佳答案
你可以试试这个
$data = json_encode(array(
'view' => (String)View::make('layouts.read'),
'url' => 'news/read/2013/11/24/test-title-seperate-with-dash'
));
return $data;
此外,您还可以使用
View::make('layouts.read')->render();
View::make('layouts.read')->__toString();
此外,Laravel
出于同样的原因提供了 Response::json()
方法(而不是 json_encode
)。
关于php - Laravel 4 如何使用 ajax 和 json 返回多个 View 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20174608/