我想使用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');
答案 0 :(得分:2)
将您的ajax类型更改为POST
,因为您的路由类型是POST
,而不是GET
。
答案 1 :(得分:0)
您在web.php中定义的路由是POST请求,但是您的Ajax方法设置为GET请求。将web.php更改为GET请求以使其正常工作。确保提供错误功能以捕获服务器端的所有错误。
反之亦然,因为已经添加了csrf设置,所以将Ajax请求更改为POST。