如何在控制器中发送Ajax数据

时间:2017-11-18 07:33:06

标签: javascript php laravel google-maps geolocation

我想根据他目前的位置向他推荐附近酒店的访客。我的问题是如何不登录用户的纬度和经度,以便我可以推荐他到附近的酒店。

home.blade.php

    <script>
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function (position) {
            console.log(position);
            var lat = position.coords.latitude;
            var lng = position.coords.longitude;

            $.ajax({
                url:'http://localhost:8000/getgeo',
                type:'get',
                data:{latitude:lat,longitude:lng},

//even when  i set some value here data:{latitude:1222323}, i did not get `1222323` in controller


                success:function(data)
                {
                    alert('success');
                }

            });
        });
    }

    </script>

我在控制器中得到了null 控制器:

public function geo()
{
    return view('home');

}
public function getCoordinate(Request $request)
{
    return $request->latitude;
}

这里我在home.blade.php页面的控制台获取经度和经度。但现在进入控制器

路线:

Route::get('/geo', 'ProductController@geo');

Route::get('/getgeo', 'ProductController@getCoordinate');

1 个答案:

答案 0 :(得分:1)

更改以下几点: -

change ajax url : url:'/getgeo'
And function :-
public function getCoordinate(Request $request)
 {
  if($request->ajax()){
    $data = $request->all();
    echo "<pre>"; print_r($data); // print all data here 
  }

 }  
 Try to change Route:-
 Route::any('/getgeo', 'ProductController@getCoordinate');