M-cheng-web/web-tracing

vue2使用会报错

Yowi opened this issue · 3 comments

Yowi commented

vue版本:2.7.x

image

你好,请提供sdk版本号、使用场景、步骤等等,你可以自己在 https://github.com/M-cheng-web/web-tracing-examples-vue2 demo项目中试试是否正常

Yowi commented

你好,请提供sdk版本号、使用场景、步骤等等,你可以自己在 https://github.com/M-cheng-web/web-tracing-examples-vue2 demo项目中试试是否正常

环境

"@web-tracing/vue2": "^2.0.3"
"vue": "^2.7.14",

代码

// main.js
import WebTracing from "@web-tracing/vue2";

Vue.use(WebTracing, {
  dsn: '/trackweb',
  appName: "cxh",
  recordScreen: false,
  pv: true,
  performance: true,
  error: true,
  event: true,
  localization: true,
  sendTypeByXmlBody: true,
  afterSendData(data) {
    console.log(data);
  },
});

问题

问题一:
image
问题二:
image

其他建议

对于 ajax 请求或者 navigator.sendBeacon 方式都有必要添加 headers 请求头,比如设置 Authorization 还是挺常见的,希望加上对应参数或者可以通过外部传入自定义请求方式进行请求,类似:

{
  ...,
 onDsn: (params) => aixos.post("/trackweb", params, {headers: {}})
}
const reportData = (url, data) => {
  const blob = new Blob([JSON.stringify(data), {
    type: 'application/x-www-form-urlencoded',
  }]);
  navigator.sendBeacon(url, blob);
};

{
  ...,
 onDsn: (params) => reportData("/trackweb",params);
}

谢谢你将问题具体化,也感谢提出建议;
问题一:这个警告问题我也很早遇到过,早期怀疑是引入的两个本地化插件有问题,但具体还有待仔细排查下
问题二:我这边在 项目更新到 2.0.3版本看了下,并没有复现你的,你是否在这中间有其他操作

针对你提的建议,sdk提供了自定义请求方式,具体使用:
beforeSendData(data) { // 返回false代表sdk不再发送 // axios.post('/trackweb', data) // return false return data }

end. 期待你提出更多建议~