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



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

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

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

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

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

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

我也面临这个问题。我也看到上传失败,但无法理解原因。为了排除不正确的设置问题,我添加了第二个用于报告的 url 并为他设置了低优先级。作为第二个网址,我使用了这家伙的解决方案 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 网址/事件。我在 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

最新更新