如何在$.ajax调用中使用变量调用成功函数



在Javascript中,我该如何制作这样的东西:

function callAjax (url, successCallback, errorCallback)
{
var ajaxProps = {
url: url,
success: successCallback,
error: errorCallback
}
return $.ajax(ajaxProps);
}

无论我怎么做,我总是会遇到错误,或者它们是未定义的。我试图慢慢地从上帝的物体中解脱出来。因此,ajax调用通常是对parent.specificSuccess的调用,因为它来自该对象。我还尝试过使用godObject[successCallback]和global[namespace].godObject[succeCallback]

function callAjax (url, successCallback, errorCallback)
{
var ajaxProps = {
url: url,
success: function (response) {
successCallback(response);
},
error: function (response) {
errorCallback(response);
}
}
return $.ajax(ajaxProps);
}

它是从神的对象内部调用的:

callAjax('https://url.com', specificSuccess, specificError);

我已经尝试了上面列出的所有三个选项,并在前面使用了"parent"。

我知道我一定错过了什么,我以前从未遇到过被要求做这样的事情。似乎我应该能够在回调中使用具有方法名称的变量来调用该方法。。。但谷歌在这方面让我失望了。

我有一个例子。它非常适合我。你可以将这些代码保存为.js文件,并在你的网页中引用。您这样调用ajax方法:backend.ajax.AjaxPOST((传递参数。可选地,您可以进行加载。

backend.ajax = {
AjaxPOST: function (url, data, dataType, callBackSucess, callBackError, loadig) {
$.ajax({
type: "POST",
url: url,
data: data,
dataType: dataType,
success: function (e) {
if (callBackSucess != null)
callBackSucess(e);
},
beforeSend: function (e) {
if (loadig == true)
startLoadingAjax();
},
complete: function (e) {
if (loadig == true)
endLoadingAjax();
}
});
},
AjaxGET: function (url, dataType, callBackSucess, callBackError, loadig) {
$.ajax({
type: "GET",
url: url,
dataType: dataType,
success: function (e) {
if (callBackSucess != null)
callBackSucess(e);
},
error: function (e) {
if (callBackError != null)
callBackError(e);
},
beforeSend: function (e) {
if (loadig == true)
startLoadingAjax();
},
complete: function (e) {
if (loadig == true)
endLoadingAjax();
}
});
}};

var divLoading = "<div id="Loading" style="display: none; position: fixed; z-index: 1000; top: 0;left: 0; height: 100%;width: 100%;background: rgba( 255, 255, 255, .8 ) url('https://i.stack.imgur.com/FhHRx.gif') 50% 50% no-repeat;display:block;"></div>";
function startLoadingAjax() {
$("body").append(divLoading);}
function endLoadingAjax() {
$("#Loading").remove();}

最新更新