不使用JQuery实现Jsonp调用
2010-11-17 15:13
435 查看
function jsonp_Request(url, data, success, timeout) {
var finish = false;
var theHead = document.getElementsByTagName("head")[0] || document.documentElement;
var scriptControll = document.createElement("script");
var jsonpcallback = "jsonpcallback" + (Math.random() + "").substring(2);
var collect = function() {
if (theHead != null) {
theHead.removeChild(scriptControll);
try {
delete window[jsonpcallback];
} catch (ex) { }
theHead = null;
}
};
var init = function() {
scriptControll.charset = "utf-8";
theHead.insertBefore(scriptControll, theHead.firstChild);
window[jsonpcallback] = function(responseData) {
finish = true;
success(responseData);
};
if (url.indexOf("?") > 0) {
url = url + "&jsoncallback=" + jsonpcallback;
} else {
url = url + "?jsoncallback=" + jsonpcallback;
}
if (typeof data == "object" && data != null) {
for (var p in data) {
url = url + "&" + p + "=" + escape(data[p]);
}
}
};
var timer = function() {
if (typeof window[jsonpcallback] == "function") {
collect();
}
if (typeof timeout == "function" && finish == false) {
timeout();
}
};
this.request = function() {
init();
scriptControll.src = url;
window.setTimeout(timer, 10000);
};
}
getJSON = function(url, data, success) {
var js
9526
onp = new jsonp_Request(url, data, success);
jsonp.request();
};
var finish = false;
var theHead = document.getElementsByTagName("head")[0] || document.documentElement;
var scriptControll = document.createElement("script");
var jsonpcallback = "jsonpcallback" + (Math.random() + "").substring(2);
var collect = function() {
if (theHead != null) {
theHead.removeChild(scriptControll);
try {
delete window[jsonpcallback];
} catch (ex) { }
theHead = null;
}
};
var init = function() {
scriptControll.charset = "utf-8";
theHead.insertBefore(scriptControll, theHead.firstChild);
window[jsonpcallback] = function(responseData) {
finish = true;
success(responseData);
};
if (url.indexOf("?") > 0) {
url = url + "&jsoncallback=" + jsonpcallback;
} else {
url = url + "?jsoncallback=" + jsonpcallback;
}
if (typeof data == "object" && data != null) {
for (var p in data) {
url = url + "&" + p + "=" + escape(data[p]);
}
}
};
var timer = function() {
if (typeof window[jsonpcallback] == "function") {
collect();
}
if (typeof timeout == "function" && finish == false) {
timeout();
}
};
this.request = function() {
init();
scriptControll.src = url;
window.setTimeout(timer, 10000);
};
}
getJSON = function(url, data, success) {
var js
9526
onp = new jsonp_Request(url, data, success);
jsonp.request();
};
相关文章推荐
- 不使用JQuery实现Jsonp调用
- 使用 jQuery 集成的 $.ajax 实现 JSONP 跨域调用
- 使用 JSONP 实现跨域通信,第 2 部分: 使用 JSONP、jQuery 和 Yahoo! 查询语言构建 mashup
- 使用反射机制实现jQuery调用ashx类中的指定方法
- MVC+JQuery实现跨域Jsonp调用Js
- Python实现类似jQuery使用中的链式调用的示例
- 使用反射机制实现jQuery调用ashx类中的指定方法
- 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码和在线测试地址】
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup
- MVC+JQuery实现跨域Jsonp调用Js
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup
- 网页跨域之jsonp的使用,包含jquery和js实现
- jQuery 调用jsonp实现与原理
- [JQ权威指南]使用JQuery调用XML实现无刷新即时聊天
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup
- jquery jsonp 调用jersey实现跨域访问
- 使用jsonp跨域调用百度js实现搜索框智能提示,并实现鼠标和键盘对弹出框里候选词的操作【附源码】
- 使用springMVC和Jquery实现JSONP
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup
- 使用 JSONP 实现跨域通信,第 1 部分: 结合 JSONP 和 jQuery 快速构建强大的 mashup