我正在构建一个显示用户列表的系统,并且在选择用户时会请求某种形式的密码.这些值保存在页面上的隐藏字段中,需要作为一种身份验证形式与每个请求一起发送.(我知道这里的MITM漏洞,但它是一个非常低调的系统,因此安全性不是一个大问题).
现在我需要为每个请求发送这些值,以授权当前"登录"的用户.我想通过自动化ajaxSetup,但是我遇到了一些问题.
我的第一次尝试是:
init_user_auth: function(){
$.ajaxSetup({
data: {
'user' : site_user.selected_user_id(),
'passcode': site_user.selected_user_pc(),
'barcode' : site_user.selected_user_bc()
}
});
},
Run Code Online (Sandbox Code Playgroud)
但是,正如我应该知道的那样,这会在调用时读取一次值ajaxSetup,并且永远不会重读它们.我需要的是每次进行ajax调用时实际调用函数的方法.
我目前正在尝试了解这里发生了什么:https://groups.google.com/forum/?fromgroups =#!topic / jquery-dev/OBcEfgvTJ9I,但是通过那里的火焰战和非常低级别的东西,我不确定我得到的是什么.
这是继续进行的方式,还是我应该只是面对事实并手动为每个ajax调用添加login-info?
如果我说得对,那么看看这个示例代码,它会为每个ajax请求添加一些值,
(function ($) {
var _ajax = $.ajax,
A = $.ajax = function(options) {
if (typeof options.data == 'object') {
$.extend( options.data, A.data );
} else if (typeof options.data == 'string' && options.data.length > 0) {
for (var key in A.data) {
options.data += '&' + encodeURIComponent(key) + '=' + encodeURIComponent(A.data[key]);
}
} else {
options.data = A.data;
}
return _ajax(options);
};
})(jQuery);
Run Code Online (Sandbox Code Playgroud)
你称之为:
$.ajax.data = { "user": 10, "pass" : 20 }; //params that always need to be passed
Run Code Online (Sandbox Code Playgroud)
然后是ajax电话,
$.ajax({
type: "POST",
url: "http://localhost/blg/crl_chk.php",
data : { "first" : 1}, //now those params will be added wit this
success: function(resp) {
console.log( resp );
}
});
Run Code Online (Sandbox Code Playgroud)
如果你$.ajax没有数据打电话,那些参数将被传递.
你的意思是这样的吗?
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |