Php Laravel 4(“数据表”)路由间歇性工作
我正在使用数据表来显示大量的行,因此我决定使用服务器端处理。我在后端与Laravel 4合作 这个问题很奇怪 每次我刷新表所在的页面时,对服务器的AJAX请求都会工作,但是如果我重放相同的XHR请求(使用Google开发工具),甚至只是执行任何其他操作(例如排序、搜索),路由可能不会工作(请注意,我使用了MAY,因为它确实是随机的) 这是路线:Php Laravel 4(“数据表”)路由间歇性工作,php,jquery,ajax,laravel-4,datatable,Php,Jquery,Ajax,Laravel 4,Datatable,我正在使用数据表来显示大量的行,因此我决定使用服务器端处理。我在后端与Laravel 4合作 这个问题很奇怪 每次我刷新表所在的页面时,对服务器的AJAX请求都会工作,但是如果我重放相同的XHR请求(使用Google开发工具),甚至只是执行任何其他操作(例如排序、搜索),路由可能不会工作(请注意,我使用了MAY,因为它确实是随机的) 这是路线: Route::group(['before'=>'auth','prefix'=>'api'],function()) { 路由::获取('公告','A
Route::group(['before'=>'auth','prefix'=>'api'],function())
{
路由::获取('公告','AnnouncementsAPIController@getAnnouncements');
});
这是控制器:
类公告SAPIController扩展BaseController{
公共功能公告()
{
$querys=$this->request->query('querys');
$office=(isset($querys['office'])==true)
?Office::find(preg_replace(“/[^0-9]/”,“,$querys['Office']))
:Office::find(Auth::user()->Office->id);
$builder=$office->announcements();
$columns=[
'announcements.id',
'通知.提取器任务id',
'通知.用户id',
“公告.办公室id”,
“通知。电话状态”,
“公告.电话召回”,
'公告.已创建于',
'公告.名称',
'公告.电话',
'公告.日期',
“公告.商标”,
“公告.模型”,
"公告.价格",,
"公告.城市",,
"公告,公里",,
'公告.crmstate',
'通知。提取器\u更新\u在'
];
$announcements=Datatablefy::prepare($builder,'Announcement',['columns'=>$columns],Input::all());
$announcements=$announcements->datatablefy();
返回$announcements->make(true);
}
}
这是Datatables生成的URL示例:
http://localhost:8000/api/announcements?draw=7&columns%5B0%5D%5Bdata%5D=website&columns%5B0%5D%5Bname%5D=&columns%5B0%5D%5Bsearchable%5D=true&columns%5B0%5D%5Borderable%5D=true&columns%5B0%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B0%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B1%5D%5Bdata%5D=id&columns%5B1%5D%5Bname%5D=&columns%5B1%5D%5Bsearchable%5D=true&columns%5B1%5D%5Borderable%5D=true&columns%5B1%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B1%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B2%5D%5Bdata%5D=date&columns%5B2%5D%5Bname%5D=&columns%5B2%5D%5Bsearchable%5D=true&columns%5B2%5D%5Borderable%5D=true&columns%5B2%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B2%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B3%5D%5Bdata%5D=city&columns%5B3%5D%5Bname%5D=&columns%5B3%5D%5Bsearchable%5D=true&columns%5B3%5D%5Borderable%5D=true&columns%5B3%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B3%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B4%5D%5Bdata%5D=trademark&columns%5B4%5D%5Bname%5D=&columns%5B4%5D%5Bsearchable%5D=true&columns%5B4%5D%5Borderable%5D=true&columns%5B4%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B4%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B5%5D%5Bdata%5D=model&columns%5B5%5D%5Bname%5D=&columns%5B5%5D%5Bsearchable%5D=true&columns%5B5%5D%5Borderable%5D=true&columns%5B5%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B5%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B6%5D%5Bdata%5D=price&columns%5B6%5D%5Bname%5D=&columns%5B6%5D%5Bsearchable%5D=true&columns%5B6%5D%5Borderable%5D=true&columns%5B6%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B6%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B7%5D%5Bdata%5D=name&columns%5B7%5D%5Bname%5D=&columns%5B7%5D%5Bsearchable%5D=true&columns%5B7%5D%5Borderable%5D=true&columns%5B7%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B7%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B8%5D%5Bdata%5D=phone&columns%5B8%5D%5Bname%5D=&columns%5B8%5D%5Bsearchable%5D=true&columns%5B8%5D%5Borderable%5D=true&columns%5B8%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B8%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B9%5D%5Bdata%5D=&columns%5B9%5D%5Bname%5D=&columns%5B9%5D%5Bsearchable%5D=true&columns%5B9%5D%5Borderable%5D=true&columns%5B9%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B9%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B10%5D%5Bdata%5D=crmstate&columns%5B10%5D%5Bname%5D=&columns%5B10%5D%5Bsearchable%5D=true&columns%5B10%5D%5Borderable%5D=true&columns%5B10%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B10%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B11%5D%5Bdata%5D=welcome_email&columns%5B11%5D%5Bname%5D=&columns%5B11%5D%5Bsearchable%5D=true&columns%5B11%5D%5Borderable%5D=true&columns%5B11%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B11%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B12%5D%5Bdata%5D=user_id&columns%5B12%5D%5Bname%5D=&columns%5B12%5D%5Bsearchable%5D=true&columns%5B12%5D%5Borderable%5D=true&columns%5B12%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B12%5D%5Bsearch%5D%5Bregex%5D=false&columns%5B13%5D%5Bdata%5D=&columns%5B13%5D%5Bname%5D=&columns%5B13%5D%5Bsearchable%5D=true&columns%5B13%5D%5Borderable%5D=true&columns%5B13%5D%5Bsearch%5D%5Bvalue%5D=&columns%5B13%5D%5Bsearch%5D%5Bregex%5D=false&order%5B0%5D%5Bcolumn%5D=2&order%5B0%5D%5Bdir%5D=asc&start=0&length=10&search%5Bvalue%5D=&search%5Bregex%5D=false&_=1426180688420
有时可能会随机给出:
{
"error": {
"type": "Symfony\\Component\\HttpKernel\\Exception\\NotFoundHttpException",
"message": "",
"file": "path\\to\\application\\vendor\\laravel\\framework\\src\\Illuminate\\Routing\\RouteCollection.php",
"line": 148
}
}
更奇怪的是,在没有任何查询字符串的情况下使用路由,它总是有效的
我还注意到,如果我尝试解码URL并使用它,它会自动迫使我退出网站,让我注销
以下是问题:
- 我如何解决这个问题
- 为什么查询字符串会给出问题
- 为什么使用解码的URL会迫使我注销