laravel Как получить расстояние между двумя точками, используя ajax - PullRequest
0 голосов
/ 26 июня 2018

У меня нормально работает код в контроллере, я его протестировал, но теперь я хочу отправить значение из пользовательского ввода, используя 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,  
  ));
  }

1 Ответ

0 голосов
/ 26 июня 2018

Если вы разрабатываете rest apis, лучше не добавлять токен.

Если вы используете 5.4 или 5.5, вы можете использовать api.php вместо web.phpapi.php вам не нужно проверять токен по запросу после отправки.

Если вы используете web.php, вы исключаете токен.Вот официальная документация

Исключение URI из защиты CSRF

<?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',
    ];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...