BuggyBuggy
@BuggyBuggy

Почему отправка сообщений через ajax работает не во всех браузерах?

Есть сайт на Wordpress. Отправка через ajax. Почему-то не во всех браузерах "Сообщение отправлено". Кое-где "Сообщение не отправлено". Вернее, видимо, играет роль версия браузера, т.к. у меня во всех браузерах (Хром, Яндекс, Мозилла, Опера, Сафари) всё нормально. У клиента же не во всех отправляется. Знаю минимум про Яндекс.Браузер.
Вот коды:
<?php
$mail = 'dummy@yandex.ru';
if ( isset($_POST["name"]) && isset($_POST["tel"]) && isset($_POST["proc"]) && isset($_POST["date"]) ) { 
	if ( $_POST["name"]!='' && $_POST["tel"]!='' && $_POST["date"]!='' && $_POST["proc"]!='' ){
	// Формируем массив для JSON ответа
    $result = array(
    	'name' => $_POST["name"],
    	'tel' => $_POST["tel"],
    	'proc' => $_POST["proc"],
    	'date' => $_POST["date"]
    ); 
    // Переводим массив в JSON
    echo json_encode($result); 
	}else{
		alert('Заполните поля');
	}
}
	$headers = 'From: no-reply@dummy.ru' . "\r\n" .
    'Reply-To: no-reply@dummy.ru' . "\r\n" .
    'X-Mailer: PHP/' . phpversion();
	 $title = 'Запись на приём';
	 $message="
		Имя: ".iconv( 'UTF-8','utf-8',$_POST['name'])."
		Телефон: ".iconv( 'UTF-8','utf-8',$_POST['tel'])."
		Процедура: ".iconv( 'UTF-8','utf-8',$_POST['proc'])."
		Дата: ".iconv( 'UTF-8','utf-8',$_POST['date']);
		mail($mail, $title, $message, $headers);
?>

JS:
$( document ).ready(function() {
    $("#btn").click(
		function(){
			sendAjaxForm('result_form', 'ajax_form', 'action_ajax_form.php');
			return false; 
		}
	);
});
function sendAjaxForm(result_form, ajax_form, url) {
    $.ajax({
        url:     'action_ajax_form.php', //url страницы (action_ajax_form.php)
        type:     "POST", //метод отправки
        dataType: "html", //формат данных
        data: $("#"+ajax_form).serialize(),  // Сеарилизуем объект
        success: function(response) { //Данные отправлены успешно
        	result = $.parseJSON(response);
        	$('#result_form').html('Имя: '+result.name+'<br>Телефон: '+result.tel+'<br>Процедура: '+result.proc+'<br>Дата: '+result.date);
			swal({
				type: 'success',
				text: 'Сообщение отправлено',
			});
    	},
    	error: function(response) { // Данные не отправлены
            $('#result_form').html('Ошибка. Данные не отправлены.');
			swal({
				type: 'error',
				text: 'Сообщение не отправлено',
			});
    	}
 	});
}

-------------------------------------
UPD:
Оказалось, что не отправляется только при переходе из Яндекса, т.к. добавляется https. С https в адресе не отправляет сообщения. Что делать?
  • Вопрос задан
  • 139 просмотров
Решения вопроса 1
BuggyBuggy
@BuggyBuggy Автор вопроса
UPD:
Оказалось, что не отправляется только при переходе из Яндекса, т.к. добавляется https. С https в адресе не отправляет сообщения.
Исправил http на https:
url: 'https://dummy.ru/action_ajax_form.php', //url страницы (action_ajax_form.php)
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
dollar
@dollar
Делай добро и бросай его в воду.
Пусть клиент перечислит браузеры, для которых хочет совместимости.
Дальше, думаю, не проблема отладить скрипт для каждого в отдельности.
Ни вы, ни мы не должны гадать, что там за "не все" браузеры у клиента, может он вообще имеет в виду Netscape Navigator.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы