函数没有从ajax调用返回消息
本文关键字:调用 返回 消息 ajax 函数 | 更新日期: 2023-09-27 17:54:07
我希望我的函数,它做一个ajax调用控制器,从响应返回消息。
我试过这个,但它不起作用。怎样才能达到我的目标?有没有更好的解决办法?
var exists = personExists ();
if (exists != null) {
alert('The person already exists');
return;
}
var personExists = function () {
var exists = false;
var errorMsg = null;
$.ajax({
url: "@Url.Action("PersonExist", "Person")",
type: "POST",
dataType: 'json',
data: { name: self.name(), socialSecurityNumber: self.socialSecurityNumber() },
async: false,
contentType: "application/json",
success: function (response) {
if (response.exists) {
exists = true;
errorMsg = response.message;
}
}
});
if (exists)
return errorMsg;
return null;
};
您可以使用回调函数;
var personExists = function (callback) {
var exists = false;
var errorMsg = null;
$.ajax({
url: "@Url.Action("PersonExist", "Person")",
type: "POST",
dataType: 'json',
data: { name: self.name(), socialSecurityNumber: self.socialSecurityNumber() },
async: false,
contentType: "application/json",
success: function (response) {
if (response.exists) {
exists = true;
errorMsg = response.message;
callback(exists, errorMsg);
}
}
});
if (exists)
return errorMsg;
return null;
};
和使用;
personExists(function(exists, err) {
if (exists != null) {
alert('The person already exists');
return;
}
});
简单地说,您可以将exists
和errorMsg
传递给回调。有关回调函数的详细信息,请参阅此处
你需要使用一个回调:
function getErrorMessage(message) {
//do whatever
}
AJAX请求内部:
$.ajax({
url: "@Url.Action("PersonExist", "Person")",
type: "POST",
dataType: 'json',
data: { name: self.name(), socialSecurityNumber: self.socialSecurityNumber() },
async: false,
contentType: "application/json",
success: function (response) {
if (response.exists) {
exists = true;
getErrorMessage(response.message); //callback
}
}
});