我正在进行实时搜索,用户可以在其中搜索业务。Laravel live ajax搜索 - 令牌不匹配
这将使用ajax并显示结果,但我得到一个错误,有一个TokenMismatchException。
这里是我的代码:
阿贾克斯:
function search_data(search_value) {
$.ajax({
url: '/searching/' + search_value,
method: 'POST',
headers: {
'X-CSRFToken': $('meta[name="token"]').attr('content')
}
}).done(function(response){
$('#results').html(response); // put the returning html in the 'results' div
});
}
控制器:
public function search($search) {
$search_text = $search;
if ($search_text==NULL) {
$data= Business::all();
} else {
$data=Business::where('name','LIKE', '%'.$search_text.'%')->get();
}
return view('results')->with('results',$data);
}
}
路线::
Route::get('/', function() {
return view('auth/login');
});
Route::group(['middleware' => ['auth']], function() {
Route::get('tfgm', '[email protected]')->name('tfgm');;
Route::get('odeon', '[email protected]')->name('odeon');;
Route::get('chronicle', '[email protected]_chronicle')->name('chronicle');;
Route::get('smokeyard', '[email protected]')->name('smokeyard');;
Route::get('profile/', '[email protected]')->name('profile');;
Route::get('create/business', '[email protected]')->name('createBusiness');
Route::get('business/list', '[email protected]')->name('viewBusiness');
Route::get('business/{id}', '[email protected]')->name('displayBusiness');
Route::post('/searching/{search}', '[email protected]');
Route::post('update', '[email protected]');
Route::post('create', '[email protected]');
Route::post('image', '[email protected]');
Route::post('test2', '[email protected]');
Route::post('markers', '[email protected]');
Route::post('reviews', '[email protected]');
});
Auth::routes();
Route::get('/home', '[email protected]')->name('home');
Route::get('/redirect/{provider}', '[email protected]');
Route::get('/callback/{provider}', '[email protected]');
master.blade.php
<head>
<meta name="csrf-token" content="{{ csrf_token() }}" />
</head>
<form action="/search" method="get" autocomplete="off" class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" id="search_text" onkeyup="search_data(this.value, 'result');" placeholder="Search">
</div>
<div id="result">
@include('results')
</div>
</div>
</form>
你是否应用正确中间件的路线? VerifyCsrfToken,EncryptCookies等? – btl
我想我是这样做的,你可以通过查看我编辑过的帖子 – Przemek
''X-CSRFToken'来确认:$('meta [name =“token”]')。attr('content')'你的名字不匹配与元标记。您已在元标记中编写了'csrf-token'。 – Ganesh