gpt4 book ai didi

javascript - AJAX 响应后提交表单时出现VerifyCsrfToken 异常

转载 作者:行者123 更新时间:2023-11-28 03:57:11 25 4
gpt4 key购买 nike

我有 AJAX 操作,它呈现一个包含多个输入字段和提交按钮的表单。

这是 AJAX 调用:

<script type="text/javascript">

$('#call_filter').click(function() {
$.ajax({
url : 'brandSpendingsFilter',
type: 'POST',

data: {company: $('#company').val(), country: $('#country').val(), dateFrom: $('#dateFrom').val(), dateUntil: $('#dateUntil').val(), media: $('#media').val(),
products: $('[id^=products_]').serialize()},

beforeSend: function() {$('#search_result').empty(); $("#loading-image2").show(); },
error: function( jqXhr, textStatus, errorThrown ){
console.log( errorThrown );
},
success : function(data) {
$("#loading-image2").hide();
$('#search_result').append(data);
}
});
});

</script>

还有我的表格:

{!! Form::open(['url' => 'brandSpendingsCSV', 'method' => 'POST', 'id' => 'csv']) !!}
{{ csrf_field() }}
<input type="hidden" name="campaignID" value="@foreach($campaignID as $c){{$c}},@endforeach">
<input type="hidden" name="dateFrom" value="{{$dateFrom}}">
<input type="hidden" name="dateUntil" value="{{$dateUntil}}">
<input type="hidden" name="media" value="{{$media}}">
<input type="hidden" name="country" value="{{$country}}">

</tr>
</table>
@if(Auth::user()->isAdmin())

<div class="row" style="float: right;"><button type="submit" onclick="submitForm()" class="btn btn-warning">CSV EXPORT</button></div>
@endif

<br>
<br>

{!! Form::close() !!}

这个onclick函数是简单的提交代码:

<script type="text/javascript">
function submitForm(){
$('#csv')[0].submit();
}
</script>

正如您从表单代码中看到的,我已经包含了 csrf 字段。但在此之后我仍然收到错误VerifyCsrfException。我尝试过的另一件事是包含 AJAX header :

<script type="text/javascript">

$(document).ready(function () {

$.ajaxSetup({
headers: {
'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
}
});

});
</script>

但仍然存在错误。有什么建议吗?

编辑

我将路由类型更改为 GET 并添加了此

<a href="brandSpendingsCSV?campaignID=@foreach($campaignID as $c){{$c}},@endforeach&dateFrom={{$dateFrom}}&dateUntil={{$dateUntil}}&media={{$media}}&country={{$country}}"><button class="btn btn-warning">CSV EXPORT</button></a>

它目前有效,但我会保留这个问题,因为这是临时解决方案。我需要有 POST 方法。

最佳答案

您正在使用 {{ csrf_field() }} 在页面中创建 token ,因此您可以使用 as

 headers: {
'X-CSRF-TOKEN': $('input[name="_token"]').val()
}

或添加名为_token的元素来发布数据

var _token = $('input[name="_token"]').val();
data: {_token:_token,company: $('#company').val(),

还计算文本框之前或页面顶部的值campaignID

关于javascript - AJAX 响应后提交表单时出现VerifyCsrfToken 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47475883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com