对控制器的自动Ajax请求

时间:2017-11-20 05:11:14

标签: javascript php jquery laravel geolocation

如何在没有点击事件的情况下通过ajax将一些数据发送到控制器。我的意思是当用户登陆HOME页面时,我想获得他当前的纬度和经度,我能够得到他/她当前的坐标。但我的问题是我无法将这个纬度和经度发送到特定的路线,所以我可以根据他当前的坐标搜索最近的酒店。

我的代码:

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

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


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

        });
    });
}

</script>

我的路线

Route::get('/coordinates', 'SearchController@getCoordinate');

控制器:

public function getCoordinate(Request $request){
    return $request->latitude;// i am getting nothing here. i expect to get 
   latitude of user
}

当用户访问网站时,如何在我的控制器的getCoordinate功能中获得此坐标。

2 个答案:

答案 0 :(得分:0)

&#34;没有点击事件&#34;

试试这个

$(document).ready(function(){
  //paste your script here
})

这意味着当文档准备就绪时,javascript将运行您的代码

答案 1 :(得分:-1)

将您的路线更改为 Route :: get(&#39; / coordinates&#39;,[&#39;使用&#39; =&gt;&#39; SearchController @ getCoordinate&#39;]);