![](/img/trans.png)
[英]TokenMismatchException with javascript x-editable on Laravel 5.3
[英]TokenMismatchException laravel 5.3
我需要理解為什么發布請求會產生TokenMismatchException。 我嘗試了標准解決方案來添加
<meta name="csrf_token" content="{{ csrf_token() }}">
和
headers: {'X-CSRF-Token': $('meta[name=csrf_token]').attr('content')}
但是當我點擊提交按鈕時,Chrome控制台日志會顯示給我
jquery.js:8625 POST http://local.game/play 500(內部服務器錯誤)發送@jquery.js:8625ajax @jquery.js:8161(匿名函數)@ index.js:10dispatch @jquery.js:4430r .handle @jquery.js:4116
提前致謝
這是錯誤
Whoops, looks like something went wrong.
1/1
TokenMismatchException in VerifyCsrfToken.php line 68:
in VerifyCsrfToken.php line 68
at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Router.php line 644
at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 618
at Router->dispatchToRoute(object(Request)) in Router.php line 596
at Router->dispatch(object(Request)) in Kernel.php line 267
at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 53
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 137
at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 33
at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 104
at Pipeline->then(object(Closure)) in Kernel.php line 149
at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
at Kernel->handle(object(Request)) in index.php line 53
這是我現在的js
$(document).ready(function () {
$('.login-input').on('focus', function () {
$('.login').addClass('focused');
});
$('.login').on('submit', function (e) {
e.preventDefault();
var data = $('.login-input').val();
var token = $('#token').val();
$('.login').removeClass('focused').addClass('loading');
$.ajax({
headers: {'X-CSRF-Token': $('meta[name=csrf_token]').attr('content')},
type: 'POST',
url: '/play',
data: JSON.stringify({'data': data, "_token": token}),
contentType: 'application/json',
dataType: 'array'
});
});
});
xhr.send( options.hasContent && options.data || null );
這是錯誤的行
您可以在您擁有的ajax請求中使用它:
$.ajax({
type: 'POST',
url: '/<url>',
data: JSON.stringify({id: '<?php echo $job->id?>', "_token": "{{ csrf_token() }}",}),
contentType: 'application/json',
dataType: 'json',
});
所以你的數據就像
id: something,
_token: <the actual token>
您不需要執行JSON
以下是CSRF文檔部分的鏈接
您在頁面中有一個雙重令牌嘗試刪除其中一個,因此請使用meta
標記並從文檔中刪除#token
,如:
$.ajax({
headers: {'X-CSRF-Token': $('meta[name=csrf_token]').attr('content')},
type: 'POST',
url: '/play',
data: JSON.stringify({'data': data}),
contentType: 'application/json',
dataType: 'array'
});
或者只是從文檔中刪除meta中的#token
:
$.ajax({
type: 'POST',
url: '/play',
data: JSON.stringify({'data': data, "_token": token}),
contentType: 'application/json',
dataType: 'array'
});
希望這可以幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.