Javascript $.post,带有基于函数的参数
我正在编写一个jquery插件,它充当一个加载链接,使用Javascript $.post,带有基于函数的参数,javascript,jquery,Javascript,Jquery,我正在编写一个jquery插件,它充当一个加载链接,使用GET或POST向服务器发送请求。现在事情真的很基本,但我无法理解,可能我累了,呵呵 这是我的密码 插件实例化: $('#load-products-button').loadingLink({ params: function(){ return { provider_id: $('#provider_id').v
GET
或POST
向服务器发送请求。现在事情真的很基本,但我无法理解,可能我累了,呵呵
这是我的密码
插件实例化:
$('#load-products-button').loadingLink({
params: function(){
return {
provider_id: $('#provider_id').val()
}
},
method: 'post',
success: function(res){
alert('ok');
}
});
var params = settings.params ? settings.params : null;
$[settings.method](url, params)
.success(function() {
settings.success.apply(this, arguments);
})
.fail(function() {
settings.error.apply(this, arguments);
})
.complete(function() {
//remove the loading html
link.html(currentHtml);
});
进行调用的代码是:
$('#load-products-button').loadingLink({
params: function(){
return {
provider_id: $('#provider_id').val()
}
},
method: 'post',
success: function(res){
alert('ok');
}
});
var params = settings.params ? settings.params : null;
$[settings.method](url, params)
.success(function() {
settings.success.apply(this, arguments);
})
.fail(function() {
settings.error.apply(this, arguments);
})
.complete(function() {
//remove the loading html
link.html(currentHtml);
});
问题是,当发送post请求时,参数不被发送,因为它们包含函数调用,post请求在发送时没有参数
如果我用{provider_id:$('#provider_id').val()}
之类的对象替换参数,它可以正常工作,但在插件实例化时发送参数对我不起作用
发送前如何评估参数
提前感谢。因为params是一个函数,所以必须调用它才能获得值。 在插件中,将代码更改为以下内容:
var params = null;
if (settings.params) {
if (typeof settings.params == "function") {
params = settings.params();
}
else {
params = settings.params;
}
}
既然
settings.params
是一个函数,就把它当作一个函数来调用<代码>变量参数=设置.params?settings.params():null代码>