Код состояния HTTP 0 может быть Межсайтовый скриптинг?

у меня есть $.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 — не проблема).

Я надеюсь, вы можете помочь мне, большое спасибо и извините за мой английский

0

Решение

Я думаю, проблема в том, что вы проверяете 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');
});

Операторы консоли доступны только для целей отладки и могут быть удалены.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]