Ajax POST发送空值

在我的网站模板中,我尝试执行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>


萧十郎
浏览 189回答 2
2回答

catspeake

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

HUH函数

在以下行中:navigator.geolocation.getCurrentPosition(showPosition)您是否在不传递“ position”参数的情况下调用showPosition?
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript