如何使用本地JavaScript写的jQuery $ .getJSON功能? [英] How to use native javascript write jquery $.getJSON function?
本文介绍了如何使用本地JavaScript写的jQuery $ .getJSON功能?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
一个演示中,我只是想使用jQuery $。的getJSON
的功能,但现在我必须导入jQuery的,所以我想用本地JavaScript写的jQuery $。的getJSON
的功能。
A demo i only want to use jquery $.getJSON
function,but now i must import jquery, so i want to use native javascript write jquery $.getJSON
function.
我的code是:
var $={
getJSON: function(url, params, callback){
var reqUrl = url;
var xhr = new XMLHttpRequest;
xhr.onreadystatechange = function() {
if (xhr.readyState == 4 && xhr.status == 200) {
JSON.parse(xhr.responseText);
}
}
xhr.open("GET", reqUrl);
xhr.send();
}
};
使用镀铬显示:
XMLHttpRequest cannot load xxxx Origin xx is not allowed by Access-Control-Allow-Origin.
谁可以帮我?
who can help me?
推荐答案
我明白了:
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) {
if(url){
url = url.split("?")[1];
}
var result = {}, queryString = url || location.search.substring(1),
re = /([^&=]+)=([^&]*)/g, m;
while (m = re.exec(queryString)) {
result[decodeURIComponent(m[1])] = decodeURIComponent(m[2]);
}
return result;
}
};
通话演示:
var url = "http://xxx.xxx.xxx?callback=jsonp123";
var params = {
a:1,
b:2
};
$.getJSON(url, params, "callback", function(data){
//todo
});
这篇关于如何使用本地JavaScript写的jQuery $ .getJSON功能?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文