define(function (require, exports, module) { var EventObject = require("../platform/EventObject.js"); var config = require("../data.js"); var WebRequest = function() { var that = this; var requestMap = {}; var ajaxCount = 0; this.getFullUri= function (url) { /// 获得完整地址 if (url[4] === ":" || url[5] === ":") return url; return config.baseUri + url; }; this.send = function (method, url, refer, data, responseType, done, failed) { var xhrData = { url: that.getFullUri(url), data: data, timeout: 120000, type: "GET", dataType: responseType, refer: that.getFullUri(refer) }; var e = new CustomEvent("ajaxproxy", { detail: { data: xhrData, index: ajaxCount++ }, cancelable: true }); if (document.dispatchEvent(e)) { requestMap[e.detail.index] = { done: done, fail: failed }; return; } }; this.sendGet = function (url, refer, data, responseType, done, failed) { /// 以GET模式发送AJAX请求 /// 要请求的地址 /// 请求的引用地址 /// 要发送的数据 /// 要请求的地址 /// 完成请求的回调 /// 请求失败的回调 that.send("GET", url, refer, data, responseType, done, failed); }; this.sendPost = function (url, refer, data, responseType, done, failed) { that.send("GET", url, refer, data, responseType, done, failed); }; document.addEventListener("ajaxproxyfinished", function (e) { var data = e.detail; if (!that.requestMap[data.index]) return; var param = requestMap[data.index]; delete requestMap[data.index]; data.success ? param.done.call(data) : param.fail.call(data); }); }; .0 WebRequest.prototype = Object.create(EventObject); WebRequest.constructor = WebRequest; return Object.create(WebRequest); });