AJAX JQuery отправить с иконкой
Я пытаюсь использовать Ajax с иконкой. Мой код отправляет форму, однако показывает сообщение об ошибке, несмотря на то, что форма работает и детали попадают в список.
$('.error').hide();
$('.erroremail').hide();
$('#successcontainer').hide();
function verifyRequired()
{
var eReg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; // regex to check valid email
var email = $('input[name="fields_email"]').val();
var name = $('input[name="fields_fname"]').val();
var phone = $('input[name="fields_phone"]').val();
var data = $("#form-popup").serialize()
if (email == "") {
$('input[name="fields_email"]').focus();
$('.error').show();
return false;
} else if (!eReg.test(email)) {
$('input[name="fields_email"]').focus();
$('.erroremail').show();
return false;
}
else if (name == "") {
$('input[name="fields_name"]').focus();
$('.error').show();
return false;
}
else if (phone == "") {
$('input[name="fields_phone"]').focus();
$('.error').show();
return false;
}
else {
$.ajax({
url: "https://app.icontact.com/icp/signup.php",
type: "POST",
data: data,
success: function(){
alert('success')
},
error: function(){
alert('failure')
},
});
return false;
}
}
Таким образом, форма отправляет детали в порядке, но показывает сообщение об ошибке?
Так что я почти у цели, кто-нибудь знает почему?
ура
вот форма тоже
<form id="form-popup" method="post" action="" name="icpsignup" accept-charset="UTF-8" onsubmit="return verifyRequired();" >
<input type="hidden" name="redirect" value="http://www.icontact.com/www/signup/thanks.html">
<input type="hidden" name="errorredirect" value="http://www.icontact.com/www/signup/error.html">
<input type="text" name="fields_fname" class="input" id="name" placeholder="Full Name" />
<input type="text" name="fields_email" class="input" id="email" placeholder="Email Address" />
<input type="text" name="fields_phone" class="input" id="phone" placeholder="Telephone" />
<input type="submit" id="submit" />
<input type="hidden" name="listid" value="xxxxxxx">
<input type="hidden" name="specialid:xxxxx" value="xxxx">
<input type="hidden" name="clientid" value="xxxxxx">
<input type="hidden" name="formid" value="xxxx">
<input type="hidden" name="reallistid" value="1">
<input type="hidden" name="doubleopt" value="0">
</form>
1 ответ
Я запустил ваш код на локальном сервере и не обнаружил никаких синтаксических ошибок.
Проблема, с которой я сталкиваюсь при использовании вашего кода, - "Блокирован перекрестный запрос".
Браузеры не разрешают запросы AJAX на другой домен, если вы попытаетесь использовать форму на сайте app.icontact.com (или, возможно, icontact.com), она будет работать.
Если вы не можете использовать icontact.com для формы, я предлагаю вам написать код PHP (который в нашем случае является языком сервера) для обработки jsonp
, Это обходной путь для политики кросс-происхождения.
Добавить dataType: jsonp
в $.ajax
$.ajax({
url: "https://app.icontact.com/icp/signup.php",
type: "POST",
dataType: "jsonp",
data: data,
success: function(){
alert('success')
},
error: function(){
alert('failure')
},
})
Выполнение вышеуказанного кода дало мне синтаксическую ошибку из signup.php, поэтому я предполагаю, что правильная обработка jsonp выдаст вам предупреждение об успехе.