我不知道为什么不起作用...我使用$.ajax
来运行file.php并传递它(POST
)一个输入值
这个file.php有效但我的函数ajax不起作用:
$.ajax({
type: 'POST',
url: 'file.php',
data: { email: $('#andressemail').val() },
success: function(data,status){
if(status === '200'){
newmessage();
}
else{
erroremessage();
}
}
});
funtion newmessage(){
alert('ok');
}
funtion erroremessage(){
alert('no');
}
file.php运行正常(它在我的简报中添加了一个用户),但$.ajax
不起作用且状态代码不是200
为什么?
答案 0 :(得分:3)
尝试按以获取状态代码,使用xhr.status作为状态代码:
$.ajax({
type: 'POST',
url: 'file.php',
data: { email: $('#andressemail').val() },
success: function(xml, textStatus, xhr) {
alert(xhr.status);
if(xhr.status === '200'){
newmessage();
}
else{
erroremessage();
}
}
});
funtion newmessage(){
alert('ok');
}
funtion erroremessage(){
alert('no');
}
答案 1 :(得分:1)
成功功能仅在HTTP响应已经200
时运行。您还需要使用错误函数,当HTTP响应未正确完成时,它将触发。将代码更改为:
function newmessage(data, textStatus, jqXHR){
alert('ok');
}
function erroremessage(data, textStatus, jqXHR){
alert('no');
}
$.ajax({
type: 'POST',
url: 'file.php',
data: { email: $('#andressemail').val() },
success: newmessage,
error: erroremessage
});
答案 2 :(得分:0)
处理$.ajax
的最佳方式是:
var _ajax = function(url, data, type){
return $.ajax({
type: type,
url: url,
data: data,
});
}
var data = { email: $('#andressemail').val() };
_ajax('file.php', data, 'POST')
.success(function(res, statusTitle, xhr){
// res: response from server
// statusTitle = 'success', ...
// xhr: XHR object, for your case, xhr.status will be 200
});
你也可以使用.error(function(){...})
,(.done
);