Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.04.2019, 08:16
Интересующийся
Отправить личное сообщение для kk450 Посмотреть профиль Найти все сообщения от kk450
 
Регистрация: 14.06.2018
Сообщений: 25

Получить результат отправки с другого сервера
Всем привет

Нужна помощь. Ситуация такая сделал бесплатный сайт на бесплатном сайтостроителе на него нужно прикрутить форму, само собой отправлять письма бесплатно письма сервис не даст. Хочу прикрутить туда форму, а отправлять со своего хостинга.

На конструкторе висит форма:
<script>
function sendContact() {
	var valid;	
	valid = validateContact();
	if(valid) {
		jQuery.ajax({
		url: "http://mysite.com/sm/777/contact_mail.php",
		data:'userName='+$("#userName").val()+'&userTel='+$("#userTel").val(),
		type: "POST",
		success:function(data){
		$("#mail-status").html(data);
		},
		error:function (){}
		});
	}
}

function validateContact() {
	var valid = true;	
	$(".demoInputBox").css('background-color','');
	$(".info").html('');
	
	if(!$("#userName").val()) {
		$("#userName-info").html("(required)");
		$("#userName").css('background-color','#FFFFDF');
		valid = false;
	}
	if(!$("#userTel").val()) {
		$("#userTel-info").html("(required)");
		$("#userTel").css('background-color','#FFFFDF');
		valid = false;
	}
	
	return valid;
}
</script>

<div id="frmContact">
<div id="mail-status"></div>
<div>
<label style="padding-top:20px;">Имя</label>
<span id="userName-info" class="info"></span><br/>
<input type="text" name="userName" id="userName" class="demoInputBox">
</div>
<div>
<label>Телефон</label> 
<span id="userTel-info" class="info"></span><br/>
<input type="text" name="userTel" id="userTel" class="demoInputBox">
</div>
<div>
<button name="submit" class="btnAction" onClick="sendContact();">Отправить</button>
</div>
</div>


А на моем хостинге обработчик:

<?php
$toEmail = "kkkkkkkkkkkkk@gmail.com"; // кому
$fromEmail = "robot@mysite.com"; // от кого
$fromEmailName = "Уведомление"; // от кого
$fromSubject = "Заказ звонка MFи";

$fromTime = date("H:i m.d.y");

$fromContent =  $_POST["userName"]." ".$_POST["userTel"]."\n".$fromTime;


$mailHeaders = "From: " . $fromEmailName . "<". $fromEmail .">\r\n";
if(mail($toEmail, $fromSubject, $fromContent , $mailHeaders)) {
print "<p class='success'>Ваши данные отправлены.</p>";
} else {
print "<p class='Error'>Problem in Sending Mail.</p>";
}
?>

Последний раз редактировалось kk450, 24.04.2019 в 08:30.
Ответить с цитированием
  #2 (permalink)  
Старый 24.04.2019, 08:18
Интересующийся
Отправить личное сообщение для kk450 Посмотреть профиль Найти все сообщения от kk450
 
Регистрация: 14.06.2018
Сообщений: 25

Если форма и данные лежат на моем хостинге то все норм письма уходят и подтверждение выводится, но если форма находится на другом сервере то письма отправляются без сообщения об успешной отправке.
Ответить с цитированием
  #3 (permalink)  
Старый 24.04.2019, 08:34
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kk450
Если форма и данные лежат на моем хостинге то все норм
А в противном случае, это чужой домен, отсюда и проблемы. Разрешите на своем хосте кроссдоменные запросы для этого бесплатного домена и все будет норма.

print "<p class='success'>Ваши данные отправлены.</p>"; - получается отправка для русских, а неудачи для англичан - print "<p class='Error'>Problem in Sending Mail.</p>"; ?

И строго говоря, здесь данные отданы sendmail, а вот будут ли они отправлены адресату, это вопрос.
Ответить с цитированием
  #4 (permalink)  
Старый 24.04.2019, 08:38
Интересующийся
Отправить личное сообщение для kk450 Посмотреть профиль Найти все сообщения от kk450
 
Регистрация: 14.06.2018
Сообщений: 25

Сообщение от laimas Посмотреть сообщение
А в противном случае, это чужой домен, отсюда и проблемы. Разрешите на своем хосте кроссдоменные запросы для этого бесплатного домена и все будет норма.

print "<p class='success'>Ваши данные отправлены.</p>"; - получается отправка для русских, а неудачи для англичан - print "<p class='Error'>Problem in Sending Mail.</p>"; ?

И строго говоря, здесь данные отданы sendmail, а вот будут ли они отправлены адресату, это вопрос.
По поводу русского и английского - это мелочи пока просто тестирую, потом исправлю )

а как разрешить кроссдоменные запросы? можете подсказать?
Ответить с цитированием
  #5 (permalink)  
Старый 24.04.2019, 08:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от kk450
а как разрешить кроссдоменные запросы?
Передать соответствующие заголовки сервером. Не буду их писать, спросите гугл, для "прочесть" ибо их не один, да и не всегда передачей одного можно разрешить.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить результат выполнения вложенной функции smegol Node.JS 0 05.06.2016 15:33
Как получить результат работы цикла в виде массива. Tungus Общие вопросы Javascript 29 08.12.2014 19:33
Получить результат выполнения скрипта на сервере в переменную ява gyper AJAX и COMET 5 19.11.2012 11:36
Объясните пожалуйста как обратится к функции и получить результат zeraid AJAX и COMET 4 03.04.2011 14:55
как получить результат умножения b и e vmtiu Элементы интерфейса 5 27.11.2009 19:20