Я столкнулся с проблемой, когда метод публикации jquery ajax работает на chrome, но не работает на сафари или firefox. Я просмотрел все другие похожие сообщения, и они не решают проблему. Всякий раз, когда я запускаю код ajax, он просто возвращает всю HTML страницу, на которой находится форма.
Вот мой javascript:
$("#piece-form").submit(function(e)
{
e.preventDefault();
// gets which submit button was clicked
var selectedButton = $(this).find("input[type=submit]:focus");
var url = selectedButton.attr("name");
var formData = new FormData(this);
$.ajax
(
{
type: "POST",
url: url,
data: formData,
cache: false,
processData: false,
success: function(data)
{
if(data == "Success!")
{
$("#error-box").css("display", "none");
$("#success-box").html("Success! Publishing...");
$("#success-box").css("display", "block");
}
else
{
$("#success-box").css("display", "none");
$("#error-box").html(data);
$("#error-box").css("display", "block");
}
}
}
)
});
Независимо от содержимого файла PHP, на который указывает функция, он работает не так, как планировалось. Я пробовал создать файл PHP с одной строкой эха, но все еще сталкиваюсь с той же проблемой. Я также реализовал блок ошибок в ajax, и он ничего не возвращает. Я также не получаю сообщение об ошибке в консоли, кроме: «Синхронный XMLHttpRequest в основном потоке устарел из-за его отрицательного воздействия на работу конечного пользователя. Для получения дополнительной помощи http://xhr.spec.whatwg.org/» в Firefox
Изменить: я добавил contentType: false, но он по-прежнему не работает должным образом в Firefox и Safari