AJAX POST-запрос возвращает HTML код в alert () - PullRequest
0 голосов
/ 26 мая 2020

У меня есть этот AJAX post запрос:

$.ajax({
   type: 'post',
   url: 'gestioneFotografie.php', //The current page
   contentType: "application/json; charset=utf-8",
   data: {
      lat: lat,
      lng: lng
   },
   dataType: 'text',   
   success: function(data) {
      alert(data);
   }
});

Проблема в том, что предупреждение выглядит так: enter image description here

1 Ответ

0 голосов
/ 27 мая 2020

Я понимаю из вашего комментария //The current page, что gestioneFotografie.php является одновременно страницей публикации и страницей ответа.
Следовательно, gestioneFotografie.php - это в основном интерфейс HTML, он дополнительно обрабатывает данные, отправленные с помощью AJAX сам по себе .

Вы ожидаете необработанную текстовую строку в качестве ответа, как подразумевается dataType: 'text' и тем фактом, что вы сознательно, я полагаю, используете простой alert() для отображения ответа.

Тот факт, что в окне предупреждения отображается HTML, позвольте мне предположить, что gestioneFotografie.php не выполняется на одном или нескольких из следующих шагов:

  1. catch опубликованные данные
  2. обработать их (после проверки безопасности)
  3. вывести необработанный текстовый ответ
  4. exit перед выводом чего-либо еще (включая HTML)

В заключение, вы должны убедиться, что gestioneFotografie.php имеет глобальную структуру, подобную этой:

<?php
if ( isset($_POST['lat'], $_POST['lng'])   &&   mySanityCheck($_POST['lat'], $_POST['lng']) === 'safe' ) {
    $string = myDataProcessor($_POST['lat'], $_POST['lng']);
    exit($string);
}

// The rest of the code, including default HTML.
?>
...