我正在使用许多Ajax请求,例如:
$.ajax({
url: 'file.php',
type: 'POST',
async: true,
data: {'data' : data},
success: function( data){
//Do Something.
}
});
所以我想知道是否可以创建一个动态函数并将一些参数传递给该函数,如(file,type,data,successFunction)。
然后每当我想发出Ajax请求时,我都会调用该函数并传递这些参数。
类似的东西:
function dynamicAjax(fileName , reqType , dataObj , succFunction){
$.ajax({
url: fileName,
type: reqType,
async: true,
data: dataObj,
success: function( data){
//Run The Passed Function (succFunction).
}
});
}
然后我执行该功能:
dynamicAjax
('file.php' , 'POST' , {'data1': data1, 'data2': data2} , function(){
//Do Something.
}
);
这可能吗?
答案 0 :(得分:5)
jQuery处理它,你不是第一个得到这个想法的人。
检查jQuery中的$.get
和$.post
方法
$.post( "test.php", { param: "value" }, ( data )=>{/*function*/}, "json");
$.get( "test.php", ( data )=>{/*function*/}, "json");
答案 1 :(得分:1)
function dynamicAjax(fileName , reqType , dataObj , succFunction){
$.ajax({
url: fileName,
type: reqType,
async: true,
data: dataObj,
success: succFunction // executes succFunction(data)
});
}
答案 2 :(得分:0)
我创建了一个动态ajax函数。请检查一下。
function ajax(url, method = 'POST', data, callback)
{
$.ajax({
url: url,
method: method,
data: data,
headers: {
"Accept": "application/json",
"Content-Type": "application/x-www-form-urlencoded;",
},
beforeSend: function ()
{
},
error: function (response)
{
switch (true) {
case typeof response.responseText !== 'undefined':
console.log(response.responseText);
break;
case response.statusText !== 'abort' && e.status === 0:
alert('Please check your internet connection');
break;
case response.statusText === 'abort':
break;
default:
console.error(response);
}
},
complete: function (response)
{
callback(response);
}
}
);
}
要调用此函数,请使用类似以下代码
ajax('url here', 'GET', {id: id}, function(response){
alert(response);
});