在我的网站模板中,我尝试执行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>
答案 0 :(得分:0)
: navigator.geolocation.getCurrentPosition(showPosition) 您是否在不传递“ position”参数的情况下调用showPosition?
答案 1 :(得分:0)
所以我自己解决了这个问题。显然,在getLocation()完成之前,AJAX正在启动。一旦将Ajax调用添加到getLocation()函数中,该问题就解决了。