我已经在控制器中正常工作了代码,我对其进行了测试,但是现在我想使用ajax将用户输入的值发送到控制器,以计算该值与固定值之间的距离。 我认为我的Ajax代码有问题,我不知道请帮助我让此代码正常工作
home.blade
<input type="text" id="postal_code" onFocus="geolocate()">
<input type="text" id="totaldistance" onFocus="geolocate()">
<button id="save_address">Save</button>
jquery
<script>
$(document).on('click', '#save_address', function(e){
$.ajax({
type: 'POST',
url: '/Get_distance',
data: {
'_token': $('input[name=_token]').val(),
'currentadd': $('#postal_code').val(),
},
success: function(data) {
alert('success');
('#totaldistance').val(data.distance);
}
});
});
</script>
web.php
Route::post('/Get_distance','HomeController@getdistance');
控制器
public function getdistance(Request $request)
{
$currentaddress =$request->currentadd;
$from = '4429 North Broadway, Chicago, IL, United States';
$remFrom = str_replace(',', '', $from); //Remove Commas
$from = urlencode($remFrom);
$to = $currentaddress;
$remTo = str_replace(',', '', $to); //Remove Commas
$to = urlencode($remTo);
$data = file_get_contents("http://maps.googleapis.com/maps/api/distancematrix/json?origins=$from&destinations=$to&language=en-EN&sensor=false");
$data = json_decode($data,true);
$distance = $data['rows'][0]['elements'][0]['distance']['text'];
return Response::json(array(
'distance' => $distance,
));
}
答案 0 :(得分:0)
如果您要开发Rest API,最好不要添加令牌。
如果您使用的是5.4
或5.5
,则可以使用api.php
代替web.php
。在api.php
中,您无需在发布请求时进行令牌验证。
如果您使用的是web.php
,那么您将放弃令牌。这是官方文件
从CSRF保护中排除URI
<?php
namespace App\Http\Middleware;
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken as BaseVerifier;
class VerifyCsrfToken extends BaseVerifier
{
/**
* The URIs that should be excluded from CSRF verification.
*
* @var array
*/
protected $except = [
'Get_distance',
];
}