CSPViolationReportBody: toJSON() 方法

已弃用:此特性不再推荐。虽然某些浏览器可能仍然支持它,但它可能已经从相关的网络标准中删除,可能正在删除过程中,或者可能仅为兼容性目的而保留。请避免使用它,如果可能,请更新现有代码;请参阅本页底部的兼容性表格以指导您的决策。请注意,此特性可能随时停止工作。

CSPViolationReportBody 接口的 toJSON() 方法是一个序列化器,它返回 CSPViolationReportBody 对象的 JSON 表示形式。

toJSON() 方法的存在允许使用 JSON.stringify() 方法将 CSPViolationReportBody 对象转换为字符串。

报告 API 在创建要发送到报告端点的违规报告的序列化版本时会使用此方法。

语法

js
toJSON()

参数

无。

返回值

一个 JSON 对象,它是 CSPViolationReportBody 对象的序列化结果。

示例

在此示例中,我们创建一个新的 ReportingObserver 来观察 CSP 违规报告,然后返回第一个条目的 JSON 表示形式。

js
const observer = new ReportingObserver(
  (reports, observer) => {
    const firstReport = reports[0];
    // Log JSON object
    console.log(firstReport.toJSON());
    // Log JSON object as a string
    console.log(JSON.stringify(firstReport));
  },
  {
    types: ["csp-violation"],
    buffered: true,
  },
);

observer.observe();

我们在 firstReport(一个 Report 实例)上调用 toJSON(),这反过来会调用此接口中定义的 toJSON() 来序列化报告的 body

为了演示,我们还对 firstReport 调用 JSON.stringify() 以创建一个包含 JSON 数据的字符串。发送或存储报告信息时,这样做比直接使用 toJSON() 更常见。

规范

此特性似乎未在任何规范中定义。

浏览器兼容性