У меня есть контактная форма, которая обрабатывается через формы Google с помощью стандартного метода JQuery .ajax и перенаправляет на URL-адрес в случае успеха или неудачи.Он отлично работает везде, кроме браузера Safari (на всех платформах).Я погуглил и нашел много людей с проблемами отправки формы в Safari, но ни один из них не подходил именно для этой ситуации
Все браузеры / платформы возвращают статус 200 успеха, кроме Safari.Вместо успешной замены URL-адреса вы каждый раз получаете сообщение об ошибке 404.
Изменить / Дополнительная информация: Safari отключает параметры URL-адреса в URL-адресе запроса, в то время как все остальные браузеры этого не делают.то есть: http://example.com вместо http://example.com? спасибо .
Вот мой код с точными URL-адресами и удаленными именами полей формы Google.Любая помощь с тем, как заставить его работать в Safari, приветствуется.
function postToGoogleForms() {
var name = $('#Name').val();
var address = $('#Address').val();
var city = $('#City').val();
var state = $('#State').val();
var zip = $('#Zip').val();
var email = $('#Email').val();
$.ajax({
url: "(Google forms endpoint url here)",
data: {
"(Google forms input name here)":name,
"(Google forms input name here)":address,
"(Google forms input name here)":city,
"(Google forms input name here)":state,
"(Google forms input name here)":zip,
"(Google forms input name here)":email
},
type:"POST",
dataType:"xml",
statusCode: {
0: function () {
window.location.replace("https://example.com?thank-you");
},
200: function () {
window.location.replace("https://example.com?thank-you");
}
}
});
}
</script>
<form onsubmit="return postToGoogleForms()" method="post">
<input type="text" placeholder="Name" name="Name" id="Name" required>
<input type="text" placeholder="Address" name="Address" id="Address" required>
<input type="text" placeholder="City" name="City" id="City" required>
<input type="text" placeholder="State" name="State" id="State" required>
<input type="text" placeholder="Zip Code" name="Zip" id="Zip" maxlength='10' required>
<input type="email" placeholder="Email" name="Email" id="Email" required>
<button type="submit" value="Submit">Submit</button>
</form>