Итак, у меня есть довольно старый проект, который я сделал, когда был гораздо менее опытным (следовательно, подход должен быть очень ужасным), чем сейчас, и теперь, изучая мой старый код, у меня возникли некоторые вопросы о механизмах.
У меня есть index.php
и input.php
, когда я нажимаю на кнопку отправить в форме на index.php
, данные из формы отправляются на input.php
, а затем данные проверяются, помещаются в базу данных MySQL. Если к тому моменту все было в порядке, сервер просто возвращается в ответ:
<script>location.reload();</script>
Вот как я отправляю этот запрос:
$.ajax({
url: $("#input_form").attr("action"),
data: formData,
processData: false,
contentType: false,
type: 'POST',
success: function(info){$("body").html(info);}
});
Так что, по сути, страница должна быть перезагружена, если все прошло нормально. Это работает, мы можем увидеть новые данные на странице.
Вопросы:
1) Почему перезагрузка страницы буквально невидима? Какой механизм позади? Поскольку я получаю html-изменения всего тела в тег скрипта с функцией перезагрузки внутри, следовательно, это должно быть похоже (если не то же самое) на размещение $('body').html("<script>location.reload()</script>")
в консоли браузера, но разница видна очень хорошо - если я помещу это в затем консоль браузера обновляет кнопку, значок текущей активной вкладки браузера также меняется на значок перезагрузки, чего не происходит с запросом
2) Почему инструменты разработчика Chrome видят эту перезагрузку как перенаправление с input.php
(вкладка «Сеть») и помещают в ответ весь файл html index.php, который не произойдет, если я запусту $('body').html("<script>location.reload()</script>")
в консоли?