【发布时间】:2017-11-20 05:11:13
【问题描述】:
如何在没有点击事件的情况下通过 ajax 向控制器发送一些数据。我的意思是当用户登陆主页时,我想获得他当前的经纬度,我能够得到他/她当前的坐标。但我的问题是我无法将这个经纬度发送到特定的路线,所以我可以根据他当前的坐标搜索最近的酒店。
我的代码:
<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 函数中获取此坐标。
【问题讨论】:
-
做
dd($request->all())首先检查您是否有任何数据。 -
完成但得到空数组 []
-
为什么不改变您的 ajax 调用并将参数作为查询字符串传递呢?
'http://localhost:8000/coordinates?latitude='+lat+'&longitude='+lng然后在你的控制器中,尝试用request()->all()检查它(这是一个函数而不是 $request 变量)?我怀疑你可能使用了错误的 Request 类。 -
谢谢,我会试试的
标签: javascript php jquery laravel geolocation