import {get, getCors, postCors, object2string } from './request' import localParam from '../utils/localParam'; const urlData = localParam(); const cdomain = urlData.cdomain; const env = urlData.env; /** * 获得跨域域名 * @return {[type]} [description] */ const getCrossDomain = () => { const {host, protocol} = window.location; // if (process.env.NODE_ENV === 'development') { // return `${protocol}//${host}`; // } if (cdomain) { return cdomain.indexOf('http') > -1 ? cdomain : `${protocol}//${cdomain}`; } else { let crossDomain = ''; const payReg = /^(pay|prepay).([^.]*).([^.]*)/; const prepayReg = /^prepay.([^.]*).([^.]*)/; const firstPosReg = /^([^.]*)/; if (payReg.test(host)) { // 充值工程 crossDomain = host.replace(firstPosReg, 'www'); if (prepayReg.test(host)) { // 预发布 crossDomain = host.replace(firstPosReg, 'pre'); } } else { crossDomain = host.replace(firstPosReg, 'pay'); if (host.indexOf('//pre.') > -1) { // 预发布 crossDomain = host.replace(firstPosReg, 'prepay'); } } return `${protocol}//${crossDomain}`; } } const logSt = (dot, message, callback) => { let stdot = {"k" : "wendingstation", "eId" : dot} if(message) { stdot = Object.assign(stdot, message) } postCors('https://st.mh.163.com/pc.gif', stdot, {}, 'json').then(result => { callback && callback(); }); } function logger({ dot, message }, callback) { let params = { dot: dot, identity: 'wd' }; if (message) { params.message = JSON.stringify(message); } if (env !== 'test') { get('/statistics/log/upload.json', params).then(result => { callback && callback(); }); } else { logSt(dot, message, callback); } } function loggerSync({ dot, message }) { let params = { dot: dot, identity: 'wd' }; if (message) { params.message = JSON.stringify(message); } var xhr = new XMLHttpRequest(); xhr.open('get', '/statistics/log/upload.json?' + object2string(params), false); // 同步请求 xhr.send(null); } //跳过验证本站点,调用 function loggerNoAuth({ dot, message }, siteInfo, callback) { let params = { dot: dot, identity: 'wd', ...siteInfo}; if (message) { params.message = JSON.stringify(message); } if (env !== 'test') { getCors('/statistics/log/cors/logUpload.json', params).then(result => { callback && callback(); }); } else { logSt(dot, message, callback); } } function loggerCors({ dot, message }, siteInfo, callback) { let params = { dot: dot, identity: 'wd', ...siteInfo }; if (message) { params.message = JSON.stringify(message); } if (env !== 'test') { let logDomain = getCrossDomain(); getCors(logDomain + '/statistics/log/cors/logUpload.json', params).then(result => { callback && callback(); }); } else { logSt(dot, message, callback); } } //假页面调用 function loggerFake({ dot, message }, siteInfo, callback) { let params = { dot: dot, identity: 'wd', ...siteInfo }; // params.ua = sha256(window.navigator.userAgent) if (message) { params.message = JSON.stringify(message); } if (env !== 'test') { getCors('/statistics/log/cors/logUpload.json', params).then(result => { callback && callback(); }); } else { logSt(dot, message, callback); } } export { logger, loggerSync, loggerNoAuth, loggerCors, loggerFake }