小编典典

使用Ajax并在Laravel 5中返回json数组

ajax

在此处输入图片说明我是“ AJAX”的新手,我一直在尝试使用“
AJAX”发送请求“ ONSELECT”并在“ laravel 5”中收到“ JSON”响应。

这是我的看法

<select>
<option data-id="a" value="a">a</option>
<option data-id="b" value="b">b</option>
<option data-id="c" value="c">c</option>
</select>

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>

<script type="text/javascript">
$('select').change(function(){
var data = $(this).children('option:selected').data('id');

$.ajax({
    type    :"POST",
    url     :"http://localhost/laravel/public/form-data",
    dataType:"html",
    data    :{ data1:data },

    success :function(response)
    alert("thank u");
    }),
});
</script>

这是我的控制器来接收ajax请求

public function formdata(){
    $data = Input::get('data1');

    //somecodes

    return Response::json(array(
                    'success' => true,
                    'data'   => $data
                )); 
}

这是我的路线

 Route::post('form-data',array('as'=>'form-data','uses'=>'FormController@formdata'));

我也尝试过仅用form-data和更改ajax的URL {{Url::route('form-data')}}


阅读 288

收藏
2020-07-26

共1个答案

小编典典

出于安全原因,Laravel 5使用csrf令牌验证....尝试此操作…

  1. 在routes.php中

    route post('form-data', 'FormController@postform');
    
  2. 在主布局文件中

    <meta name="csrf-token" content="{{ csrf_token() }}" />
    
  3. var CSRF_TOKEN = $(’meta [name =“ csrf-token”]’)。attr(’content’);

    $.ajax({
    url: '/form-data/',
    type: 'POST',
    data: {_token: CSRF_TOKEN},
    dataType: 'JSON',
    success: function (data) {
        console.log(data);
    }
    

    });

2020-07-26