我有一个$.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"权限文件,如果我使用浏览器运行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(我确信101%的api没有问题)
我希望你能帮助我,非常感谢,对不起我的英语
答案 0 :(得分:1)
我认为问题在于,当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');
});
控制台语句仅用于调试目的,可以删除。