Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何检索lat&;客户提供的长坐标,而无需发布一次?_Javascript_Django_Django Forms_Django Views_Geodjango - Fatal编程技术网

Javascript 如何检索lat&;客户提供的长坐标,而无需发布一次?

Javascript 如何检索lat&;客户提供的长坐标,而无需发布一次?,javascript,django,django-forms,django-views,geodjango,Javascript,Django,Django Forms,Django Views,Geodjango,只要用户同意共享,我就想用他们的lat/long进行一些服务器端处理——我想在用户“允许”位置访问后,处理结果立即出现在用户所在的同一页面中 目前,我能够检索到他们的坐标,但一个帖子被删除了。因此,当他们“允许”时,我填写一个隐藏的lat/long表单,等待他们发布表单,然后再使用Geodjango进行服务器端处理 什么是一种有效的方法,可以在坐标可用时立即将坐标发送到服务器,或者立即检索估计的位置 是的,您可以轻松做到这一点: 创建一个将POST参数作为JSON获取的视图 Python示例

只要用户同意共享,我就想用他们的lat/long进行一些服务器端处理——我想在用户“允许”位置访问后,处理结果立即出现在用户所在的同一页面中

目前,我能够检索到他们的坐标,但一个帖子被删除了。因此,当他们“允许”时,我填写一个隐藏的lat/long表单,等待他们发布表单,然后再使用Geodjango进行服务器端处理


什么是一种有效的方法,可以在坐标可用时立即将坐标发送到服务器,或者立即检索估计的位置

是的,您可以轻松做到这一点:

  • 创建一个将
    POST
    参数作为JSON获取的视图
Python示例:

class MyJsonForAjaxView(generic.View):

    def get(self, request, *args, **kwargs):
        return JsonResponse({'key': value}, safe=False)
  • 使用POST方法在JavaScript(=AJAX调用)中调用该视图:
JavaScript代码:

$.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
?反之亦然?我两种方法都试过了,奇怪的是,它们似乎都有效。。但当它们发生冲突时就不是了。