Laravel 5.我对Laravel完全不熟悉。并没有得到javascript ajax数据到控制器。
有一个“主”文件。它是带有ajax javascript的“yield”文件。哪里有ajax javascript加载表文件。桌面是通过仅重新加载表来“分页”。页面的其余部分不会改变。
routes.php文件
Route::get('/', 'AddressController@tablePage');
Route::post('addresses.table', 'AddressController@table');
// Route::post('addresses.table', function(){
// return var_dump(Input::all());
// });
AddressController.php
<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class AddressController extends Controller {
public function tablePage()
{
return view('addresses.page');
}
public function table()
{
return var_dump(Input::all());
// $r = 0; //Input::get('r');
// $f = '';//Input::get('f');
// $rc = 5;//Input::get('rc');
// $add = \App\Models\Address::table('work_name', 'LIKE', '%'.$f.'%', $rc ,$r);
// $addRowCount = \App\Models\Address::tableRowCount('work_name', 'LIKE', '%'.$f.'%');
// $data = [
// 'addresses' => $add,
// 'addRowCount' => $addRowCount,
// 'rc' => $rc,
// 'r' => $r
// ];
// return view('addresses.table', $data);
}
}
ajax javascript文件
// function runing when clicking on pagination
function fnLoadTable(r)
{
$('#mainGifLoader').fadeIn('fast');
if(typeof r == 'undefined')
r = 1;
var f = '';//$('#tFind').val();
var rc = 5;//$('#pageTableRowCount').val();
if(typeof rc == 'undefined')
rc = 5;
$.post(
'addresses.table',
{ r:r, f:f, rc:rc },
function(result)
{
$('#idTable').html(result);
$('#mainGifLoader').fadeOut('fast');
});
};
使用ajax帖子有弯曲的令牌。
从javascript数据发送。使用胶合路线时可以看到这一点。
但是AddressCountroller @ table,我无法获得这些POST数据。
哪里会出错?
谢谢。
答案 0 :(得分:0)
:
Route::post('addresses/table', [
'as' => 'table', 'uses' => 'AddressController@table'
]);
在jquery中:
$.post(
'/addresses/table',
{ r:r, f:f, rc:rc },
function(result)
{
$('#idTable').html(result);
$('#mainGifLoader').fadeOut('fast');
});
答案 1 :(得分:0)
默认情况下,除了GET
和HEAD
请求外,laravel5还需要一个csrf令牌以及帖子数据。除非您在$.ajaxSetup()
中发送令牌,否则您必须在请求中包含令牌。否则,您将收到500内部服务器错误消息Tokenmismatch exception
。
修改以下部分的代码:
$.post(
'addresses.table',
{ r:r, f:f, rc:rc, _token:"{{csrf_token()}}" },
function(result)
{
$('#idTable').html(result);
$('#mainGifLoader').fadeOut('fast');
});
您需要发送附加参数“_token”以及其他数据。