P.S:我在 Stackoverflow 中看到了许多关于 CSRF 令牌不匹配的答案,并且我都尝试了它们。 所有现有答案都没有解决我的问题。所以,我不得不再次问一个新问题。
我正在使用 Laravel 10 以及 PHP 8.x 和 jQuery AJAX。
在我的 app.blade.php 中,我添加了
<!-- CSRF Token -->
<meta name="csrf-token" content="{{ csrf_token() }}">
在我的资源\js ootstrap.js
$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});
在我的刀锋中
<script>
let data = { '_token': $('meta[name="csrf-token"]').attr('content') }
//Already tried '_token': "{{ csrf_token() }}"
$.ajax({
type: "POST",
url: url,
data: data,
headers: {'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')},
contentType: "application/json",
dataType: "json",
success: function(text) {}
})
</script>
在我的回复中,
有人可以帮我解决这个问题吗?
您需要发出 AJAX 请求并传递 CSRF 令牌,如下所示:
$(document).on('change', '.users-select', function() {
var csrfToken = $('meta[name="csrf-token"]').attr('content');
$.ajax({
url: update_sales_person,
type: 'POST',
dataType: 'json',
headers: {
'X-CSRF-TOKEN': csrfToken
},
data: { "sales_person": data},
success: function(response) {
if(response.success == true){
successToast(response.message);
}
},
error: function (xhr, status, error) {
console.error('Error:', error);
}
});
});