在think/app.php中第168行
$type = $isAjax ? Config::get('default_ajax_return') : Config::get('default_return_type');
删掉,改成$isPjax = $request->isPjax();
$type = Config::get('default_return_type');
if ($isAjax) {
$type = Config::get('default_ajax_return');
}
if ($isPjax) {
$type = Config::get('default_pjax_return');
}
然后在配置文件中增加一项配置// 默认PJAX 数据返回格式,可选json xml ...
'default_pjax_return' => 'html',
即可解决问题。---------------------------------------------------------------------------------
上面是解决方案,下面是开始遇到的问题
---------------------------------------------------------------------------------
我在前端尝试使用Pjax,但是一直有问题。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<div id="container">
<a href="/ceshi">测试链接</a>
</div>
</body>
</html>
这是前台的代码,控制器里这样写的,if (request()->isPjax()) {
return $this->fetch('ceshi');
}
模板里面只写了一个<div>哈哈,这里是测试Pjax的</div>
但是测试的时候前台返回的内容里面生成了很多斜杠"\r\n\t
哈哈,这里是测试Pjax的<\/div>\r\n\r\n"
请问这是怎么回事啊,试了好久都不行,是不是后台不应该用return $this->fetch('ceshi');?最佳答案
