/**
* 向服务器发送GET请求。
*
* @param {type} url
* @param {type} async 是否异步调用
* @param {type} fnCallback 回调函数
* @returns {undefined} 如果是异步调用,通过fnCallback函数回调;如果是同步调用,直接返回请求结果。
*/
function request(url, async, fnCallback) {
var http;
if (window.XMLHttpRequest) {
http = new XMLHttpRequest();
} else if (window.ActiveXObject) {
http = new ActiveXObject("Microsoft.XMLHTTP");
} else return;
if (async) {
if (fnCallback) {
http.onreadystatechange = function () {
if (http.readyState == 4 && http.status == 200) {
fnCallback(http.responseText);
}
}
}
http.open("GET", url, true);
http.send();
} else {
http.open("GET", url, false);
http.send();
if (fnCallback) {
fnCallback(http.responseText);
}
return http.responseText;
}
}
/**
* 向跨域服务器请求指定的URL。
* 通过QueryString中必须包含名为callback的参数,该参数的值是回调函数的名称。
*
* @param {type} url
* @returns {undefined} 通过QueryString中的callback参数指定的回调函数进行处理。
*/
function jsonp(url) {
var b = document.getElementsByTagName("head")[0];
var a = document.createElement("script");
a.type = "text/javascript";
a.src = url;
b.appendChild(a);
}