Javascript 我们怎样才能称之为Ajax;错误:函数();从成功功能手动执行功能?
如何从success:function手动调用error:function?可能吗?Javascript 我们怎样才能称之为Ajax;错误:函数();从成功功能手动执行功能?,javascript,jquery,ajax,Javascript,Jquery,Ajax,如何从success:function手动调用error:function?可能吗? success: function(data) { response($.map(data, function(item) { if (item != "some value") { // Call error:function from here } return item; })) }, error: function(xhr,
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
像这样:
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
onError(...)
}
return item;
}))
},
error: onError
var onError = function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
顺便说一下,使用eval从来都不是一个好主意。Ajax
error
函数在http请求失败时被调用。ajaxsuccess
上无法触发error
功能。请参阅API文档
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
如果您想在ajax上执行特定的任务,您可以将其封装在函数中,并在ajax
successsuccess中调用,如果请求成功,则调用该函数
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
error是请求失败时要调用的函数
因此,在这种背景下,你的问题没有意义
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}
但是,是的,当一个调用成功或失败时,您可能有一些共同的事情要做;我的建议是在一个单独的函数中收集所有要做的普通事情,并在success和error中调用这个普通函数是的,就是这样。创建一个函数onSuccess()
将当前success
的代码移动到该函数中,并将其赋值为success:onSuccess,error:…
,然后您也可以在不使用ajax的情况下调用它。我猜您误解了ajax中错误回调的概念。如果您在问题中添加更多细节,可能还有其他更好的选择。旁注:不确定您为什么需要进行eval(“+xhr.responseText+”)
,但有99%的可能性,不需要进行eval就可以通过其他方式进行。
success: function(data) {
response($.map(data, function(item) {
if (item != "some value") {
// Call error:function from here
}
return item;
}))
},
error: function(xhr, status, error) {
var err = eval("(" + xhr.responseText + ")");
alert(err.Message);
}