报告 api:有没有办法调试报告上传失败的原因

Reporting api: Is there a way to debug why reports are failing to upload

提问人:thoo1 提问时间:6/30/2020 最后编辑:thoo1 更新时间:6/29/2021 访问量:388

问:

我正在尝试设置一个带有网络错误日志记录的站点。这使用报告 API 生成和发送有关最终用户体验的报告,并允许访问有关网络问题的较低级别信息

NEL 规格:https://www.w3.org/TR/network-error-logging/

报告 api 规范:https://w3c.github.io/reporting/

我已经设置了所需的 NEL 和 Report-To 标头,但是当我使用 chrome://net-export 收集日志并查看这些报告的情况时,我注意到报告未能上传到我在 Report-To 中指定的端点(我通过使用 https://netlog-viewer.appspot.com/#reporting 查看我的网络日志,在“上传失败”列下看到这一点)。

是否有任何工具或其他信息可以让我调查失败的原因?我在使用我的网站时使用 Fiddler 查看网络流量,但我没有看到对 nel 终结点的任何传出网络调用,因此这告诉我,在发送报告之前,可能有些东西失败了

感谢这里的任何帮助,谢谢

Google-Chrome Chromium W3C 错误报告

评论


答:

1赞 potiev 6/29/2021 #1

我也面临过这个问题。我也看到上传失败,但无法理解原因。为了排除不正确的设置问题,我添加了第二个用于报告的网址,并为他设置了低优先级。作为第二个网址,我使用了这个家伙的解决方案 https://report-uri.com

Report-To: {
  "group": "nel-reports",
  "max_age": 86400,
  "endpoints": [
     {"url": "https://myurl.org/events", "priority": 1},
     {"url": "https://nickname.report-uri.com/events", "priority": 2}
 ]}

NEL: {"report-to":"nel-reports", "max_age": 86400}

如果浏览器无法上传到 https://myurl.org/events,它会将报告上传到 https://nickname.report-uri.com url/events。我找到了 report-uri.com 方面的报告,并开始调查我的第一个网址。

就我而言,问题与CORS有关。我的预检请求服务器返回带有 * 的响应标头,这不适用于报告 API。这是报告api或功能的错误)

# Browser preflight request
Origin: https://anothermysite.org
Access-Control-Request-Headers: content-type
Access-Control-Request-Method: POST

# My server response
Access-Control-Allow-Origin: *
Access-Control-Allow-Methods: *
Access-Control-Allow-Headers: *

此标头允许一切,但不适用于报告 API。服务器必须返回这样的响应才能正确工作报告 api。

Access-Control-Allow-Origin: https://anothermysite.org
Access-Control-Allow-Methods: POST
Access-Control-Allow-Headers: content-type