laravel使用json将数据从控制器传递到jquery

时间:2018-06-26 15:07:50

标签: javascript jquery laravel

我想使用json将数据从控制器传递到jquery,但不知道问题出在哪里,但是在我测试成功代码但无法从controller取回结果的jquery代码中,我认为它工作正常

home.blade

self
    <form role="form" name="form_address" id="form_address" action="" method="POST"  enctype="multipart/form-data">
     {{ csrf_field() }}
  <input type="text" id="postal_code" onFocus="geolocate()">
  <input type="text" id="totaldistance"  onFocus="geolocate()">
 </form>
  <button id="save_address">Save</button>

web.php

 <script>
$("#save_address").click(function (e) {
$.ajaxSetup({
    headers: {
         'X-CSRF-TOKEN': $('meta[name="_token"]').attr('content')
    }
   });

   e.preventDefault();
  var form = document.forms.namedItem("form_address");
  var formData = new FormData(form); 
  $.ajax({
     type: "get",
    url: 'Get_distance',
    contentType: false,
    data: formData, 
    processData: false,
    success: function(data) {
      $('#totaldistance').val(data.distance); 
    }
   });
  });

控制器

Route::post('Get_distance','HomeController@getdistance');

2 个答案:

答案 0 :(得分:2)

将您的ajax类型更改为POST,因为您的路由类型是POST,而不是GET

答案 1 :(得分:0)

您在web.php中定义的路由是POST请求,但是您的Ajax方法设置为GET请求。将web.php更改为GET请求以使其正常工作。确保提供错误功能以捕获服务器端的所有错误。

反之亦然,因为已经添加了csrf设置,所以将Ajax请求更改为POST。