用原生JavaScript实现jQuery的$.getJSON的解决方法
作者:
今天在写一DEMO,其中用到了jQuery的$.getJSON方法,写完后发现整个DEMO中用到jQuery中的就这一个地方,但要引入一个jQuery实在不划算,于是就自己实现了一个简单版的,基本可以满足需求,现分享出来:
var $ = {
getJSON: function(url, params, callbackFuncName, callback){
var paramsUrl ="",
jsonp = this.getQueryString(url)[callbackFuncName];
for(var key in params){
paramsUrl+="&"+key+"="+encodeURIComponent(params[key]);
}
url+=paramsUrl;
window[jsonp] = function(data) {
window[jsonp] = undefined;
try {
delete window[jsonp];
} catch(e) {}
if (head) {
head.removeChild(script);
}
callback(data);
};
var head = document.getElementsByTagName('head')[0];
var script = document.createElement('script');
script.charset = "UTF-8";
script.src = url;
head.appendChild(script);
return true;
},
getQueryString: function(url) {
var result = {}, queryString = (url && url.indexOf("?")!=-1 && url.split("?")[1]) || location.search.substring(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(queryString)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
}
};
调用DEMO如下:
var url = "http://xxx.xxx.xxx?callback=jsonp123";
var params = {
a:1,
b:2
};
$.getJSON(url, params, "callback", function(data){
//todo
});
您可能感兴趣的文章:
- JQuery 获取json数据$.getJSON方法的实例代码
- Jquery中$.get(),$.post(),$.ajax(),$.getJSON()的用法总结
- jquery $.getJSON()跨域请求
- Jquery getJSON方法详细分析
- jQuery+ajax中getJSON() 用法实例
- JQuery中getJSON的使用方法
- jQuery getJSON 处理json数据的代码
- JQuery中的$.getJSON 使用说明
- ie下jquery.getJSON的缓存问题的处理方法
- jQuery中$.ajax()和$.getJson()同步处理详解
- jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解
- jQuery使用getJSON方法获取json数据完整示例