DataCrossdomain.js 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. Namespace.register("U.MD.CD"); //完全跨域的解决方案
  2. //是否加载完成
  3. U.MD.CD.isLoad;
  4. //跨域传输的数据
  5. U.MD.CD.data;
  6. //如果不是1473的域名访问的处理
  7. if (!window.location.host.indexOf("www.1473.cn")) {
  8. //错误处理,前端错误需要在控制台输出,同时提交到错误数据库
  9. //window.onerror = function(sMessage,sUrl,sLine,columnNumber,errorObj){};
  10. //onerror函数的五个参数用于确定错误确切的信息,代表的意思依次为:
  11. //* @param {String} errorMessage errorMessage 错误信息
  12. //* @param {String} scriptURI 出错的文件
  13. //* @param {Long} lineNumber 出错代码的行号
  14. //* @param {Long} columnNumber 出错代码的列号
  15. //* @param {Object} errorObj 错误的详细信息,Anything
  16. window.onerror = function (errorMessage, scripturi, linenumber, columnnumber, errorobj) {
  17. errorobj = errorobj || {}; //屏蔽js错误
  18. U.A.Request(US.USER, ["SetError", 0, (event.errorMessage || event || errorMessage), (scripturi || event.filename || event.errorUr) + "。行号:" + (linenumber || event.lineno || event.errorLine)], function () { }, []); //错误消息发送到数据库
  19. U.UF.C.console(event.errorMessage || event || errorobj); //console 输出错误信息
  20. return true; //不让浏览器弹出错误报告,浏览器会弹出一个comfirm的错误。
  21. }
  22. //加载所有的跨域
  23. U.UF.CD.loadAjaxCrossDomain(function () {
  24. U.MD.CD.isLoad = true; //设置跨域加载成功处理
  25. U.MD.CD.load(); //加载成功后的处理
  26. });
  27. //跨域执行ajax处理 fun, issender, iframeid, url, id
  28. U.MD.CD.me = new U.UF.EV.message(function (data, id, cookie) {
  29. U.MD.CD.data = [data, id]; //跨域传输的数据
  30. U.MD.CD.load(); //加载的处理
  31. }, false, "domain");
  32. //发送请求获取数据
  33. U.MD.CD.load = function () {
  34. //如果加载完,同时有传输数据的处理
  35. if (U.MD.CD.isLoad && U.MD.CD.data) {
  36. var _data = U.MD.CD.data[0], //传参的值
  37. _url = _data[0], //需要请求的url
  38. _params = _data[1]; //需要请求的参数
  39. try {
  40. //做www.1473.cn的用户安全的。以后再扩展
  41. US.userInfo = US.userInfo.userid ? US.userInfo : {
  42. "LoginId": U.UF.Cookie.get("usestudiosso", "loginid")[0],
  43. "UserId": U.UF.Cookie.get("usestudiosso", "userid")[0]
  44. };
  45. }
  46. catch (e) { }
  47. //当a.com要调用b.com的时候,把a.com的ajax转向到b.com中去访问。boomyun是用到这里的.
  48. U.A.Request(_url, _params, function (r) {
  49. var _cookie = U.UF.Cookie.get("usestudiosso");
  50. //设置登录信息
  51. if ("LoginByCookie,uploadUserinfo".indexOf(_params[0]) > -1 && r.value && r.value[0]) {
  52. US.userInfo = r.value[0];
  53. US.userInfo.LoginId = r.value[2];
  54. }
  55. //数据发送获取
  56. U.MD.CD.me.post(r.value, U.MD.CD.data[1], "usestudiosso=" + (_cookie || ""));
  57. });
  58. }
  59. }
  60. }