提问人:thoo1 提问时间:6/30/2020 最后编辑:thoo1 更新时间:6/29/2021 访问量:388
报告 api:有没有办法调试报告上传失败的原因
Reporting api: Is there a way to debug why reports are failing to upload
问:
我正在尝试设置一个带有网络错误日志记录的站点。这使用报告 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 终结点的任何传出网络调用,因此这告诉我,在发送报告之前,可能有些东西失败了
感谢这里的任何帮助,谢谢
答:
我也面临过这个问题。我也看到上传失败,但无法理解原因。为了排除不正确的设置问题,我添加了第二个用于报告的网址,并为他设置了低优先级。作为第二个网址,我使用了这个家伙的解决方案 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
评论