Ajax POST отправляет нулевое значение - PullRequest
0 голосов
/ 11 мая 2019

в шаблоне моего сайта я пытаюсь выполнить запрос 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 голосов
/ 12 мая 2019

Так что я сам решил проблему. Очевидно, AJAX срабатывал до завершения getLocation (). Эта проблема была решена, когда я добавил Ajax-вызов в функцию getLocation ().

0 голосов
/ 11 мая 2019

в строке: navigator.geolocation.getCurrentPosition (showPosition) Вы не вызываете showPosition без передачи параметра "position"?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...