首页 帮助中心 基调听云Browser 手动添加Ajax接口

手动添加Ajax接口

当运行环境中没有XHR 对象或fetch 接口时(例如使用React Native开发,运行在移动端的应用),可以使用手动调用接口的方式监控请求。

添加Ajax接口

window['TINGYUN'].addAjax(ajaxData)

ajaxData对象类型,包含下列属性:

属性 说明 默认值
method 请求方法 GET
url 请求url
status 状态码 0
start 请求开始时间戳 0
du 请求耗时 end-start
end 请求结束时间戳 0
send 发送字节数 0
rec 服务端返回字节数 0
cb 回调函数执行时间 0

接口调用参考方式:

const ajaxData = {
    method: 'GET',
    url: 'https://jsonplaceholder.typicode.com/todos/1',
    start: +new Date
};
axios.get('https://jsonplaceholder.typicode.com/todos/1')
    .then(function (response) {
        // handle success
        ajaxData.rec = (JSON.stringify(response.data) || '').length;
        ajaxData.end = +new Date;
        ajaxData.du = ajaxData.end - ajaxData.start;
        ajaxData.status = response.status;
    })
    .catch(function (error) {
        // handle error
    })
    .finally(function () {
        // always executed
        // 调用添加ajax接口
        window['TINGYUN'].addAjax(ajaxData);
    });

需要更加准确记录start 和end,可以在 transformRequesttransformResponse 中设置。

示例:

const ajaxData = {
    method: 'GET',
    url: 'https://jsonplaceholder.typicode.com/todos/1'
};
const axiosInstance = axios.create({
    transformRequest: [function (data, headers) {
        ajaxData.start = +new Date;
        return data;
    }],
    transformResponse: [function (data) {
        ajaxData.end = +new Date;
        return data;
    }],
});
axiosInstance.get('https://jsonplaceholder.typicode.com/todos/1')
    .then(function (response) {
        // handle success
        ajaxData.rec = (JSON.stringify(response.data) || '').length;
        ajaxData.du = ajaxData.end - ajaxData.start;
        ajaxData.status = response.status;
    })
    .catch(function (error) {
        // handle error
    })
    .finally(function () {
        // always executed
        window['TINGYUN'].addAjax(ajaxData);
    });

禁用默认Ajax监控

当使用手动设置Ajax时,可以禁用默认的Ajax监控功能。在设置中关闭Ajax自动监控 开关,保存后重新嵌码。