Ajax POST发送空值

时间:2019-05-11 14:31:20

标签: javascript python jquery ajax django

在我的网站模板中,我尝试执行Ajax POST请求,以将用户的坐标发送到服务器,然后服务器应输出相应的最近城市。但是,当前Ajax唯一要做的就是输出空值。

整个项目使用django框架。为了确保crsf不是我禁用整个站点的crsf保护的原因。我也尝试过而不是传递json,字符串整数等,都返回null。另外,我的成功函数正在触发,因此ajax函数显然可以正常工作。

<script>
var loc = [] ;



function getLocation() {
  if (navigator.geolocation) {
    navigator.geolocation.getCurrentPosition(showPosition);
  } else {
    loc.push( "Geolocation is not supported by this browser.");
  }
}

function showPosition(position) {
  loc.push(position.coords.latitude) ; 
  loc.push(position.coords.longitude) ; 
}








</script>
<script >
window.onload = function(){
  getLocation();
};

$.ajax({

  url: '{% url "locnews" %}', 
  type : "post",
  data:  {
    "location": loc 
  },
  datatype : "json",
  success : console.log("succ"),

})





</script>

2 个答案:

答案 0 :(得分:0)

该行中的

: navigator.geolocation.getCurrentPosition(showPosition) 您是否在不传递“ position”参数的情况下调用showPosition?

答案 1 :(得分:0)

所以我自己解决了这个问题。显然,在getLocation()完​​成之前,AJAX正在启动。一旦将Ajax调用添加到getLocation()函数中,该问题就解决了。