我正在delete
mysql
申请中laravel
尝试记录<a href="{{url('/page/'.$Ids->id)}}" class="remove-entry">
<button type="button" class="close" aria-label="Close"><span aria-hidden="true">×</span></button>
</a>
。但它显示 TokenMismatchException 错误。我无法找到它抛出错误的原因。如果有人可以提供帮助,那就太好了。
这是查看代码:(我没有表单)
$(document).on('click', '.remove-entry', function(e){
e.preventDefault();
$.ajax({
url: this.href,
type: 'DELETE',
data: {
"_token": "{{ csrf_token() }}"
},
success: function(res) {
console.log('removed');
}
});
});
这是 jQuery AJAX调用:
token
更新
我厌倦了以下代码,但它不起作用可能是因为它需要具有值token
,我想这是从表单中获取的。但正如我上面已经提到的,我没有表单设置。那么如何在这种情况下设置headers: {'X-CSRF-TOKEN': token}
值呢?
NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"(hotelPrice <= %d AND numberOfBudget <= %d)" , hotelDistanceFloat,numberOfDistance];
TableArray = [[TableArray filteredArrayUsingPredicate:sPredicate].mutableCopy]
我理解我面临的问题并不是新的或独特的,但它肯定不同于它被认为是重复的问题。此外,代码工作得很好,但它在新项目中创建问题
答案 0 :(得分:3)
如果您想在laravel中发送没有CSRF令牌的Ajax请求 转到:app / Http / Middlewares / VerifyCsrfToken.php
protected $except = [
'request/send_ajax', /// Enter your route post link here
'request/send_ajax1'
];
现在您可以发布没有令牌的
的ajax请求或
在您将执行Ajax请求的页面上简单地插入META标记,默认中间件将检查csrf_token。
OR
$.ajax({
url: "<?php echo url("yourrequest"); ?>",
type: "POST",
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
},
data:'column='+column+&id='+id,
success: function(data){
console.log(msg);
}
});
使用Laravel5.2
答案 1 :(得分:1)
您可能需要生成应用密钥,输入您的cmd:
php artisan key:generate
然后将以下行(使用生成的密钥)写入.env文件
APP_KEY=your_key
如果这不起作用,您可以在视图中创建js变量:
var token = '{{Session::token()}}';
然后不使用标题尝试:
$.ajax({
method:"post",
url:yoururl,
data:{
_token:token,
}
}).done(function(msg) {
});
第三个选项可能是您的用户登录到您的应用时出现问题。然后,您需要显示控制器的登录代码。
希望它会有所帮助:)