在Laravel5中使用ajax

在Laravel5中使用ajax,ajax,laravel,Ajax,Laravel,以下是我的ajax代码: $('select[id=currency-data]').change(function () { var currency_id = $(this).val(); $.ajax({ url: "{{Route('exchange-rate')}}", type: 'POST', data: {currency_id: currency_id }, success: functio

以下是我的ajax代码:

$('select[id=currency-data]').change(function () {

    var currency_id =   $(this).val();

    $.ajax({
        url: "{{Route('exchange-rate')}}",
        type: 'POST',
        data: {currency_id: currency_id },
        success: function(data){
            $('#ex-rate').val(data);
        }
    });
});
视图:

当我运行这个程序时,我得到了一个错误:VerifyCsrfToken.php中的TokenMismatchException

有人能给出解决办法吗?

改变
数据:{currency\u id:currency\u id},


您好,如果您将js和view文件分开,并且希望使用ajax提交表单,而不是使用视图中任何HTML标记的数据属性来添加csrf令牌,如下图所示

<div id="toke" data-token="{!! csrf_token() !!}"></div>
第二个选项是创建隐藏的输入元素,并使用jquery表单序列化来获取表单数据

<form id="form-data" action="url" method = 'POST' />    
{!! csrf_field() !!}

{!! Form::label('currency_id', 'Currency:', ['class' => 'control-label']) !!}
{!! Form::Select('currency_id', $currency_data, Input::old('currency_id'), ['id'=>'currency-data','class' => 'form-control','required']) !!}

{!! Form::label('exchange_rate', 'Exchange Rate:', ['class' => 'control-label']) !!}
{!! Form::input('number','exchange_rate', Input::old('exchange_rate'), ['id'=>'ex-rate','class' => 'form-control','readonly','required']) !!}
将此添加到刀片文件的
标记上

<meta name="csrf-token" content="{{ csrf_token() }}">

在javascript上,在jQuery库之后,调用:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
});
</script>

$.ajaxSetup({
标题:{
'X-CSRF-TOKEN':$('meta[name=“CSRF-TOKEN”]).attr('content'))
}
});
<form id="form-data" action="url" method = 'POST' />    
{!! csrf_field() !!}

{!! Form::label('currency_id', 'Currency:', ['class' => 'control-label']) !!}
{!! Form::Select('currency_id', $currency_data, Input::old('currency_id'), ['id'=>'currency-data','class' => 'form-control','required']) !!}

{!! Form::label('exchange_rate', 'Exchange Rate:', ['class' => 'control-label']) !!}
{!! Form::input('number','exchange_rate', Input::old('exchange_rate'), ['id'=>'ex-rate','class' => 'form-control','readonly','required']) !!}
var form = $("#form-data");
$.ajax({
        url: form.attr( 'action' ),
        type: 'POST',
        data: form.serialize(),
        success: function(data){
            $('#ex-rate').val(data);
        }
     });
});
<meta name="csrf-token" content="{{ csrf_token() }}">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script>
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
        }
});
</script>