123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 |
-
- Namespace.register("U.A");
- U.A.allAjaxRequest =
- {
- requestNumber: 0,
- requestObject: [],
- forrequest: 0
- };
- var serverInfo = {
- affectRows: null,
- value: null,
- error: null,
- statusCode: null
- }
- var serverReturnObj = {
- httpRequest: null,
- status: 200,
- serverInfo: serverInfo,
- value: null,
- context: null
- };
- U.A.Request = function (url, params, cb, cbparams, header) {
-
- if (U.A.Request.ifAttack()) {
- var _isdomain = U.A.Request.isDomain(url);
-
- if (_isdomain == 1) {
- var _header = header || {},
- _ajaxtype = _header.type || "POST",
- _isasync = U.UF.C.isFunction(cb),
- _params = U.A.Request.toAjaxFormat(params);
-
- var _ajaxobject = U.A.Request.createAjaxObject(url);
-
- U.A.Request.attack(url, params, cb, cbparams, header, _ajaxobject);
-
- if (_ajaxtype.toUpperCase() == "GET") {
- url += "?" + _params;
- }
-
- _ajaxobject.open(_ajaxtype, url, _isasync);
-
- U.A.Request.writeHeader(_ajaxobject, _header);
-
- _ajaxobject.send(_params);
-
-
- if (_isasync) {
- U.A.Request.asyn(_ajaxobject, cb, cbparams);
- }
-
- else {
- return U.A.Request.getData(_ajaxobject, null);
- }
- }
- else {
- return U.A.Request.handleDomain(url, params, cb, cbparams, header, _isdomain);
- }
- }
- }
- U.A.Request.Post = function (url, params, cb, cbparams, header) {
-
- if (U.A.Request.ifAttack()) {
- var _isdomain = U.A.Request.isDomain(url);
-
- if (_isdomain == 1) {
- var _header = header || {},
- _ajaxtype = _header.type || "POST",
- _isasync = U.UF.C.isFunction(cb),
- _params = U.A.Request.Post.toAjaxFormat(params);
-
- var _ajaxobject = U.A.Request.createAjaxObject(url);
-
- U.A.Request.attack(url, params, cb, cbparams, header, _ajaxobject);
-
- _ajaxobject.open(_ajaxtype, url, _isasync);
-
- U.A.Request.writeHeader(_ajaxobject, _header);
-
- _ajaxobject.send(_params);
-
-
- if (_isasync) {
- U.A.Request.asyn(_ajaxobject, cb, cbparams);
- }
-
- else {
- return U.A.Request.getData(_ajaxobject, null);
- }
- }
- else {
- return U.A.Request.handleDomain(url, params, cb, cbparams, header, _isdomain);
- }
- }
- }
- U.A.Request.Post.toAjaxFormat = function (params) {
- var _key;
- var _params = '';
- for (_key in params) {
- _params += _key + '=' + encodeURIComponent(encodeURIComponent(params[_key])) + '&';
- }
- return _params.substr(0, _params.length - 1);
- }
- U.A.Request.attack = function (url, params, cb, cbparams, header, ajaxobject) {
- var _preajax = U.A.allAjaxRequest.requestObject[U.A.allAjaxRequest.requestObject.length - 1],
- _ajaxarray = {
- "win": window,
- "ajax": ajaxobject,
- "url": url,
- "params": params,
- "cb": cb,
- "cbparams": cbparams,
- "header": header,
- "time": new Date().getTime()
- };
- U.A.allAjaxRequest.requestNumber += 1;
- U.A.allAjaxRequest.requestObject.push(_ajaxarray);
-
- if (_preajax) {
-
- if (_ajaxarray.time - _preajax.time < 50) {
- U.A.allAjaxRequest.forrequest += 1;
- }
- else {
- U.A.allAjaxRequest.forrequest = 0;
- }
- }
- return _ajaxarray;
- }
- U.A.Request.toAjaxFormat = function (params) {
- params = params || [];
- var _userinfo,
- _params = "mode=" + U.UF.C.urlEncode(params.concat());
- try {
-
- if (parent && parent.US) {
- _userinfo = parent.US.userInfo;
-
- if (_userinfo && _userinfo.UserId) {
- _params += "&UserId=" + _userinfo.UserId + "&LoginId=" + _userinfo.LoginId;
- }
-
- _params += "&PageId=" + US.pageId + "&SystemId=" + US.systemId;
- }
- } catch (e) { }
- return _params;
- }
- U.A.Request.createAjaxObject = function (url) {
-
- var _locationurl = window.location ? (window.location.protocol + "//" + window.location.host) : "";
- if (url.indexOf(_locationurl) == -1 && window.XDomainRequest) {
- return new window.XDomainRequest();
- }
-
- try { return new XMLHttpRequest(); } catch (e) { }
-
-
- try { return new ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) { }
- try { return new ActiveXObject('Msxml2.XMLHTTP'); } catch (e) { }
- try { return new ActiveXObject('MSXML3.XMLHTTP'); } catch (e) { }
- try { return new ActiveXObject('MSXML.XMLHTTP'); } catch (e) { }
- try { return new ActiveXObject("Microsoft.XMLHTTP"); } catch (e) { }
- try { return new ActiveXObject('MSXML2.ServerXMLHTTP'); } catch (e) { }
-
- }
- U.A.Request.writeHeader = function (ajax, header) {
- header["CONTENT-TYPE"] = header["CONTENT-TYPE"] || "application/x-www-form-urlencoded;charset=UTF-8";
-
- header["timeout"] = 10000;
- try {
- header["type"] = null;
- delete header["type"];
- }
- catch (e) { }
-
- for (var i in header) {
- try {
-
- if (i in ajax) {
- ajax[i] = header[i];
- }
-
- else {
- ajax.setRequestHeader(i, header[i]);
- }
- }
- catch (e) { }
- }
-
- if (ajax.overrideMimeType) {
- if (header["responseType"] == "blob") {
- ajax.overrideMimeType("text/plain; charset=x-user-defined");
- } else {
- ajax.overrideMimeType("text/html");
- }
- }
- }
- U.A.Request.asyn = function (ajaxobject, cb, params) {
-
- if (params && params[0] && U.UF.C.isElement(params[0])) {
- U.UF.DL.loading(params[0]);
- }
-
- if (ajaxobject.onreadystatechange !== undefined) {
-
- ajaxobject.onreadystatechange = function () {
- if (ajaxobject.readyState == 4) {
-
- if (params && params[0] && U.UF.C.isElement(params[0])) {
- U.UF.DL.uploading(params[0]);
- }
- var _data = U.A.Request.getData(ajaxobject, params);
- cb.call(cb, _data);
- }
- }
-
- ajaxobject.ontimeout = function () {
- return false;
- }
- }
-
- else {
- ajaxobject.ontimeout = function () { }
-
- ajaxobject.onerror = function () {
- ajaxobject.status = 500;
- cb.call(cb, {
- httpRequest: ajaxobject,
- status: {
- "status": ajaxobject.status,
- "statusText": ajaxobject.statusText
- },
- value: null,
- context: params
- });
- };
-
- ajaxobject.onload = function () {
-
- if (params && params[0] && U.UF.C.isElement(params[0])) {
- U.UF.DL.uploading(params[0]);
- }
- var _data = U.A.Request.getData(ajaxobject, params);
- cb.call(cb, _data);
- }
- }
- }
- U.A.Request.getData = function (ajaxobject, cbparams) {
- var _data,
- _returnobj = {
- httpRequest: ajaxobject,
- status: 200,
- value: null,
- context: cbparams
- };
-
- if (ajaxobject.status == 200 || ajaxobject.status == null) {
-
- if (ajaxobject.responseXML && ajaxobject.responseXML.xml) {
- _data = ajaxobject.responseXML.xml;
- }
-
- else {
- _data = U.UF.C.toJson(ajaxobject.responseText);
- }
- _returnobj.value = _data;
- }
-
- else {
-
- _returnobj.status = {
- "status": ajaxobject.status,
- "statusText": ajaxobject.statusText
- };
- }
-
- if (ajaxobject.abort) {
- ajaxobject.abort();
- }
-
- U.A.Request.timeSpan(ajaxobject, _returnobj);
-
- return _returnobj;
- }
- U.A.Request.isDomain = function (url) {
- var _frame,
- _a = $$("a", { "href": url })
- ;
-
- if (window.location) {
-
- if (_a.host.indexOf(document.domain) >= -1) {
- return 1;
- }
-
- else if (window.location.host.split(".").slice(-2).join(".") == _a.hostname.split(".").slice(-2).join(".")) {
- _frame = window.frames;
-
- for (i = 0; i < _frame.length; i++) {
- try {
- if (_frame[i].location.host && _a.host.indexOf(_frame[i].location.host) == 0) {
- return 2;
- }
- }
- catch (e) {
- }
- }
- }
- }
-
-
-
-
- return 1;
- }
- U.A.Request.handleDomain = function (url, params, cb, arg, header, isdomain) {
- var _newsinfo,
- _a = $$("a", { "href": url }),
- _frame;
-
- if (isdomain == 2) {
- _frame = window.frames;
-
- for (i = 0; i < _frame.length; i++) {
- try {
- if (_a.hostname.indexOf(_frame[i].location.hostname) == 0) {
- return _frame[i].U.A.Request(url, params, cb ? function (data) { setTimeout(function () { cb.call(window, data) }); } : null, arg, header);
- }
- }
- catch (e) {
- }
- }
- }
-
- else if (isdomain == 3) {
-
- if (params && U.UF.C.isElement(params[0])) {
- U.UF.DL.uploading(params[0]);
- }
-
- _newsinfo = new U.UF.EV.message(
- function (data, id, cookie) {
-
- if (cookie == "") {
- U.UF.Cookie.del(cookie);
- }
-
- else {
- U.UF.Cookie.set(cookie);
- }
- var _data = {
- httpRequest: null,
- status: 200,
- value: data,
- context: arg
- };
- cb.call(cb, _data);
- }, true, "domain", "U_Domain");
-
- _newsinfo.post([url, params], "domain");
- }
- return false;
- }
- U.A.Request.ifAttack = function () {
- var _isfor = U.A.allAjaxRequest.forrequest < 50;
-
- if (!_isfor) {
- setTimeout(function () { U.A.allAjaxRequest.forrequest = 0; })
- }
- return _isfor;
- }
- U.A.Request.timeSpan = function (ajaxobject, request) {
- var i,
- _timespan,
- _arr = U.A.allAjaxRequest.requestObject;
-
- for (i = 0; i < _arr.length; i++) {
- try {
-
- if (_arr[i].ajax == ajaxobject) {
- _timespan = new Date().getTime() - _arr[i].time;
- U.UF.C.console({ "timespan": _timespan, "request": request });
- }
- } catch (e) { }
- }
- }
|