当我更改项目文件夹时 ajax 删除在 Laravel 5 中发送的请求时出现令牌不匹配异常
Token Mismatch exception when ajax Delete request sent in Laravel 5 when I change project folder
我用Dropzone.js上传图片。
当我想删除图像时,我向图像控制器发送了 Ajax 删除请求。
myDropzone.on("removedfile", function(file) {
console.log(file.name);
console.log(uploadedImages[file.name]);
var csrf = $('input[name=_token]').val();
// var csrf = $('meta[name="_token"]').attr('content');
console.log(csrf);
var request = $.ajax({
url: "/cms/image/"+uploadedImages[file.name],
headers: {
'X-CSRF-Token': csrf ,
"Accept": "application/json"
},
type: "DELETE",
data: { "id": uploadedImages[file.name] },
error: function(jqXHR, textStatus, errorThrown) {
// alert('HTTP Error: '+errorThrown+' | Error Message: '+textStatus);
console.log(errorThrown);
},
在我的旧项目中,该方法已通过删除请求成功发送到 Controller。
但是我在其他项目中合并,我得到了错误。
TokenMismatchException in VerifyCsrfToken.php
我不明白为什么会出现这种异常。请解释一下。感谢并尊重所有极客。
默认laravel自带csrf token验证中间件。
解法:
您可以通过从 Http 文件夹的 kernel.php
中删除 csrf 令牌的中间件注册来禁用它。
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
//'App\Http\Middleware\VerifyCsrfToken',
];
您可以尝试将token放在发送的数据中
data: {
"_token": "{{ csrf_token() }}",
"id": uploadedImages[file.name]
},
我遇到了同样的问题,但它与 CSFR 无关,这是因为文件大小大于 2MB..
我用Dropzone.js上传图片。 当我想删除图像时,我向图像控制器发送了 Ajax 删除请求。
myDropzone.on("removedfile", function(file) {
console.log(file.name);
console.log(uploadedImages[file.name]);
var csrf = $('input[name=_token]').val();
// var csrf = $('meta[name="_token"]').attr('content');
console.log(csrf);
var request = $.ajax({
url: "/cms/image/"+uploadedImages[file.name],
headers: {
'X-CSRF-Token': csrf ,
"Accept": "application/json"
},
type: "DELETE",
data: { "id": uploadedImages[file.name] },
error: function(jqXHR, textStatus, errorThrown) {
// alert('HTTP Error: '+errorThrown+' | Error Message: '+textStatus);
console.log(errorThrown);
},
在我的旧项目中,该方法已通过删除请求成功发送到 Controller。
但是我在其他项目中合并,我得到了错误。
TokenMismatchException in VerifyCsrfToken.php
我不明白为什么会出现这种异常。请解释一下。感谢并尊重所有极客。
默认laravel自带csrf token验证中间件。
解法:
您可以通过从 Http 文件夹的 kernel.php
中删除 csrf 令牌的中间件注册来禁用它。
protected $middleware = [
'Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode',
'Illuminate\Cookie\Middleware\EncryptCookies',
'Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse',
'Illuminate\Session\Middleware\StartSession',
'Illuminate\View\Middleware\ShareErrorsFromSession',
//'App\Http\Middleware\VerifyCsrfToken',
];
您可以尝试将token放在发送的数据中
data: {
"_token": "{{ csrf_token() }}",
"id": uploadedImages[file.name]
},
我遇到了同样的问题,但它与 CSFR 无关,这是因为文件大小大于 2MB..