Javascript 如何检索lat&;客户提供的长坐标,而无需发布一次?
只要用户同意共享,我就想用他们的lat/long进行一些服务器端处理——我想在用户“允许”位置访问后,处理结果立即出现在用户所在的同一页面中 目前,我能够检索到他们的坐标,但一个帖子被删除了。因此,当他们“允许”时,我填写一个隐藏的lat/long表单,等待他们发布表单,然后再使用Geodjango进行服务器端处理Javascript 如何检索lat&;客户提供的长坐标,而无需发布一次?,javascript,django,django-forms,django-views,geodjango,Javascript,Django,Django Forms,Django Views,Geodjango,只要用户同意共享,我就想用他们的lat/long进行一些服务器端处理——我想在用户“允许”位置访问后,处理结果立即出现在用户所在的同一页面中 目前,我能够检索到他们的坐标,但一个帖子被删除了。因此,当他们“允许”时,我填写一个隐藏的lat/long表单,等待他们发布表单,然后再使用Geodjango进行服务器端处理 什么是一种有效的方法,可以在坐标可用时立即将坐标发送到服务器,或者立即检索估计的位置 是的,您可以轻松做到这一点: 创建一个将POST参数作为JSON获取的视图 Python示例
什么是一种有效的方法,可以在坐标可用时立即将坐标发送到服务器,或者立即检索估计的位置 是的,您可以轻松做到这一点:
- 创建一个将
参数作为JSON获取的视图POST
class MyJsonForAjaxView(generic.View):
def get(self, request, *args, **kwargs):
return JsonResponse({'key': value}, safe=False)
- 使用POST方法在JavaScript(=AJAX调用)中调用该视图:
$.ajax({
method: 'post',
type: 'json',
cache: false,
url: 'my_json_url',
data: {'lat': your_lat, 'lgn': your_lgn}
}).done(function(data) {
alert('call successfull!!!');
/* data is filled with Django result, here {'key': value} */
/* todo: remember the call has been made and it's registered on Django side */
}).fail(function(data) {
alert('fatal error!');
}).always(function() {
/* whatever the result, always do something here */
});
如果ajax
方法是'post'
,那么只要您有了所需的内容,您就可以在后台执行此操作,CBV中的函数是否也应该是def post
?反之亦然?我两种方法都试过了,奇怪的是,它们似乎都有效。。但当它们发生冲突时就不是了。