66 lines
2.0 KiB
JavaScript
66 lines
2.0 KiB
JavaScript
|
|
|||
|
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) {
|
|||
|
/// <summary>获得完整地址</summary>
|
|||
|
|
|||
|
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) {
|
|||
|
/// <summary>以GET模式发送AJAX请求</summary>
|
|||
|
/// <param name="url">要请求的地址</param>
|
|||
|
/// <param name="refer">请求的引用地址</param>
|
|||
|
/// <param name="data">要发送的数据</param>
|
|||
|
/// <param name="responseType">要请求的地址</param>
|
|||
|
/// <param name="done">完成请求的回调</param>
|
|||
|
/// <param name="failed">请求失败的回调</param>
|
|||
|
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);
|
|||
|
});
|