Answer the question
In order to leave comments, you need to log in
Why is Forbidden thrown when requesting via ajax?
http://cmd:81/modules/msimcallme/ajax.php 403 (Forbidden) - jquery-1.11.0.min.js?1443353439:4 POST
send
@ jquery-1.11.0.min.js?1443353439:4n.extend.ajax
@ jquery-1.11.0.min.js?1443353439:4(anonymous function)
@ index.php:278n.event.dispatch
@ jquery-1.11.0.min.js?1443353439:3r.handle
@ jquery-1.11.0.min.js?1443353439:3
<div class="rightcolumn">
<div class="home">
<p><a class="mainButton" href="#modal">Позвонить</a></p>
</div>
</div>
<div class="remodal" data-remodal-id="modal" role="dialog" aria-labelledby="modal1Title" aria-describedby="modal1Desc">
<div class="remodalBorder">
<p><img src="/../img/sendico.png"></p>
<button data-remodal-action="close" class="remodal-close" aria-label="Close"></button>
<form id="call_me_form">
<h2 id="modal1Title">Оставьте ваши контактные данные и наш консультант свяжется <br>с вами</h2>
<input type="text" class="putName" name="call_me_name" placeholder="Ваше ваше имя" required>
<input type="tel" class="putPhone" name="call_me_putPhone" placeholder="Введите номер телефона" required>
<input type="submit" name="call_me_submit" class="btn" value="ОТПРАВИТЬ">
<input type="hidden" name="formData" value="Заявка с сайта">
</form>
</div>
</div>
{literal}
<script>
$(document).ready(function () {
$("form").submit(function () {
// Получение ID формы
var formID = $(this).attr('id');
// Добавление решётки к имени ID
var formNm = $('#' + formID);
$.ajax({
type: "POST",
url: baseDir + 'modules/msimcallme/ajax.php',
data: formNm.serialize(),
success: function (data) {
// Вывод текста результата отправки
$(formNm).html(data);
console.log('send-data')
},
error: function (jqXHR, text, error) {
// Вывод текста ошибки отправки
console.log('error')
$(formNm).html(error);
}
});
return false;
});
});
</script>
{/literal}
<?php
require_once(dirname(__FILE__).'\..\..\config\config.inc.php');
require_once(dirname(__FILE__).'\..\..\init.php');
echo "call me plplp"."<br>";
if (Tools::isSubmit('call_me_submit'))
{
echo "call me plplp";
$name = Tools::getValue('call_me_name');
$phone = Tools::getValue('call_me_putPhone');
$formData = Tools::getValue('formData');
$to = "[email protected]"; /*Укажите адрес, га который должно приходить письмо*/
$sendfrom = "[email protected]"; /*Укажите адрес, с которого будет приходить письмо, можно не настоящий, нужно для формирования заголовка письма*/
$headers = "From: " . strip_tags($sendfrom) . "\r\n";
$headers .= "Reply-To: ". strip_tags($sendfrom) . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;charset=utf-8 \r\n";
$subject = "$formData";
$message = "$formData<br> <b>Имя пославшего:</b> $name <br><b>Телефон:</b> $phone";
$send = mail ($to, $subject, $message, $headers);
if ($send == 'true')
{
echo '<p class="success">Спасибо за отправку вашего сообщения!</p>';
}
else
{
echo '<p class="fail"><b>Ошибка. Сообщение не отправлено!</b></p>';
}
}else {
echo "Попробуйте еще раз";
http_response_code(403);
echo "Попробуйте еще раз";
}
exit;
Answer the question
In order to leave comments, you need to log in
From the documentation:
> Note: Only "successful controls" are serialized to the string. No submit button value is serialized since the form was not submitted using a button.
Do it in this way:
var data = formNm.serializeArray();
data['call_me_submit'] = 1;
$.ajax({
type: "POST",
url: baseDir + 'modules/msimcallme/ajax.php',
data: data,
success: function (data) {
// Вывод текста результата отправки
$(formNm).html(data);
console.log('send-data')
},
error: function (jqXHR, text, error) {
// Вывод текста ошибки отправки
console.log('error')
$(formNm).html(error);
}
});
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question