【问题标题】:Ajax POST sends null ValueAjax POST 发送空值
【发布时间】:2019-05-13 02:21:24
【问题描述】:

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

【问题讨论】:

    标签: javascript python jquery ajax django


    【解决方案1】:

    在该行中: navigator.geolocation.getCurrentPosition(showPosition) 你不是在不传递“位置”参数的情况下调用 showPosition 吗?

    【讨论】:

    • 您好,感谢您的回答。该函数的目的是向用户显示经纬度坐标,所以不需要参数
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-06-28
      • 2013-02-15
      • 1970-01-01
      • 2019-07-18
      • 2015-07-07
      • 2021-07-28
      • 1970-01-01
      相关资源
      最近更新 更多