今天遇到一个需求,需要在ajax的回调函数中使用发送请求的参数。查了资料后得知在回调函数中可以通过this.data来获得ajax的data参数,但是此时this.data是一个URL参数形式的字符串(aa=1&bb=2&cc=3),于是就需要将这个字符串转换成js的对象。代码如下
// url参数转换为js对象
function urlParamsToObj(data){
var result = {};
try{
if(data == null || data == ''){
return result;
}else{
var paramsArr = data.split("&");
for(var i = 0; i < paramsArr.length; i++){
var kv = paramsArr[i].split("=");
result[kv[0]]=kv[1];
}
return result;
}
}catch(ex){
return result;
}
}
//ajax请求
$.ajax({
data : {aa:1, bb:2, cc:3},
url : 'http://this.is.url.com',
dataType : 'json',
type : 'post',
success : function(ret){
var obj = urlParamsToObj(this.data);
// 现在就可以愉快的使用发送ajax请求时的参数啦
alert(obj.aa);
alert(obj.bb);
alert(obj.cc);
}
})