у меня есть $.ajax
который запускает файл в php и передает переменную (адрес электронной почты). Файл работает очень хорошо, но xhr.status
является 0
,
Это код:
$.ajax({
type: 'POST',
url: 'file.php',
data: { email: destinatario },
complete: function(xhr,status){
$('#momentaneo, #force').remove();
alert(xhr.status);
if(xhr.status === 200){
alert('ok');
}
else{
alert('no');
}
}
});
это file.php
, независимо xhr.status
, отлично работает, и он добавляет пользователя в мою рассылку. Так что я не думаю, что этот файл является проблемой ..
У него есть файлы разрешений «0755», и если я запускаю URL file.php
с браузером проблем нет.
Проблема в том, что xhr.status
является 0
и я не понимаю почему …
Я читал, что это может быть «межсайтовый скриптинг», но я не знаю, возможно ли это в моем случае. Я пытался также изменить тег form
в div
но ничего.
Я также добавляю file.php
:
<?php
include('wrapper.php');
$apikey = "76a21109637d7391d1e68e9680e6";
voxmail_init($apikey);
voxmail_user_subscribe(array('mail' => $_POST['email'],'privacy' => 1),$_SERVER['REMOTE_ADDR']);
$header = "Content-type: text/html";
header($header);
print('<b>ok</b>');
?>
voxmail — это API службы рассылки (я уверен, что API — не проблема).
Я надеюсь, вы можете помочь мне, большое спасибо и извините за мой английский
Я думаю, проблема в том, что вы проверяете xhr.status
когда status
передается вам как второй параметр в вашем полном обратном вызове. Попробуйте это вместо этого:
$.ajax({
type: 'POST',
url: 'file.php',
data: { email: destinatario }
}).always(function(){
$('#momentaneo, #force').remove();
}).then(function(){
console.log.apply(console, arguments);
alert('ok');
}, function(){
console.warn.apply(console, arguments);
alert('no');
});
Операторы консоли доступны только для целей отладки и могут быть удалены.
Других решений пока нет …