define(function(require, exports, module) {
var $ = require('$');
var rbOws = require('rb-ows');
var json2 = require('json2');
/**
* 包含跨域请求工具类
*/
var RequestHelper = {
GatewayURL : rbOws.real_path + "/anon_httpsindex.html",
Busy : false,
sendRequest : function(url, handler) {
var protocol = location.protocol;
// 不是ie浏览器不包含XDomainRequest直接使用CORS,或者用html5的postmessage进行请求
if ($.browser.msie && window.XDomainRequest) {
if (protocol == "http:") {// 以http开头
if (RequestHelper.Busy) {
setTimeout(function() {
RequestHelper.sendRequest(url, handler);
}, 50);
} else {
// 监听回调回来的信息
function iframeServer(event) {
RequestHelper.Busy = false;
$("#ajaxProxy").remove();
EventUtil.removeHandler(window, 'message',
iframeServer);
// window.removeEventListener('message', serverA);
console.log(event.data);
handler(json2.parse(event.data));
}
EventUtil.addHandler(window, 'message', iframeServer);// 添加事件
RequestHelper.Busy = true;
$("body")
.append(
"<iframe id='ajaxProxy' style='display: none;' src='"
+ RequestHelper.GatewayURL
+ "' width='320' height='240'></iframe>");
$("#ajaxProxy")
.load(
function() {
document
.getElementById("ajaxProxy").contentWindow
.postMessage(url, "*");
// ajaxProxy.postMessage(url,"*");
});
}
}
// else {// 不是http开头
// var xdr = new XDomainRequest();
// xdr.open("get", url);
// xdr.onprogress = function() {
// };
// xdr.ontimeout = function() {
// };
// xdr.onerror = function() {
// };
// xdr.onload = function() {
// handler(xdr.responseText);
// };
// setTimeout(function() {
// xdr.send();
// }, 0);
// }
} else {// 除IE直接使用CORS
var url_param = url.split("|");
var url = url_param[0];
var param = json2.parse(url_param[1]);
$.ajax({
type : "post",
url : url,
dataType : "json",
async : false,
data : param,
success : function(response) {
handler(response);
}
});
}
}
};
/**
* 事件增加/解除工具
*/
var EventUtil = {
addHandler : function(element, type, handler) {
if (element.addEventListener) {
// for ie9+
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
// for ie8-
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler : function(element, type, handler) {
if (element.removeEventListener) {
// for ie9+
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
// for ie8-
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};
return RequestHelper;
});
anon_httpsindex.html
<script type="text/javascript"
src="frontend/sea-modules/jquery/1.8.3/jquery-1.8.3.min.js"></script>
<script type="text/javascript"
src="frontend/sea-modules/json/json2_2.js"></script>
<script type="text/javascript">
/**
事件增加/解除工具
*/
var EventUtil = {
addHandler : function(element, type, handler) {
if (element.addEventListener) {
//for ie9+
element.addEventListener(type, handler, false);
} else if (element.attachEvent) {
//for ie8-
element.attachEvent("on" + type, handler);
} else {
element["on" + type] = handler;
}
},
removeHandler : function(element, type, handler) {
if (element.removeEventListener) {
//for ie9+
element.removeEventListener(type, handler, false);
} else if (element.detachEvent) {
//for ie8-
element.detachEvent("on" + type, handler);
} else {
element["on" + type] = null;
}
}
};
//客户端监听事件
function iframeClient(event) {
var url_param = event.data.split("|");
var url = url_param[0];
var param = JSON.parse(url_param[1]);
$.ajax({
type : "post",
url : url,
dataType : "json",
async : false,
data : param,
success : function(data) {
var resStr = JSON.stringify(data);
event.source.postMessage(resStr, '*');
EventUtil.removeHandler(window, 'message', iframeClient);
//removeEventHandler('message', iframeClient);
//window.removeEventListener('message', iframeClient);
console.log(event, event.data);
}
});
}
EventUtil.addHandler(window, 'message', iframeClient);//添加事件
</script>
调用:
var paramStr = json2.stringify(param);
var url = rbOws.real_path + '/anon_register_phoneUniqueness.htm'
+ jsessionid;
var url_param = url + "|" + paramStr;
RequestHelper.sendRequest(url_param, processData2);
function processData2(data) {
if (data.isUnique != '1') {
$("#errorMessage").text("该账号不存在。");
flag = false;
return false;
} else if (data.checkPwd == 2) {
$("#password").attr("value", "");
$("#login_vercode").attr("value", "");
$("#errorMessage").text("密码不正确,请重新输入。");
// Response.Redirect("login_generateAuthCode.htm");
refresh(eval($("#login_verpic")));
// window.navigate("login_generateAuthCode.htm");
// top.location='login_generateAuthCode.htm';
// 密码不正确,重新刷新验证码
flag = false;
return false;
}
}
json2_2下载