我正在使用 Cypress 和 Ax 来测试我的网站的可访问性,但它似乎忽略了我使用元标记设置的内容安全策略 (CSP)。
当我运行测试时,我在 cy.checkA11y() 上得到以下信息:
EvalError: Refused to evaluate a string as JavaScript because 'unsafe-eval' is not an allowed source of script in the following Content Security Policy directive: "script-src 'self' 'unsafe-inline'"
然而,目标网页 ( andrewhick.com ) 的源代码包含以下内容:
<meta http-equiv="Content-Security-Policy" content="default-src 'none'; img-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; style-src 'self' 'unsafe-inline'; ">
我尝试用谷歌搜索错误,但找不到其他有类似问题的人。
我还考虑了问题是否在于缓存,但重新打开赛普拉斯(我认为应该清除缓存)并没有帮助,此外,赛普拉斯会自动清除缓存。
这可能是因为 CSP 是在元标记中定义的,而不是在服务器上,但我不相信我的托管公司允许访问服务器。
同样无益的是问题是间歇性的,并且套件确实工作过一次。我尝试添加、删除和重新添加“unsafe-eval”,但测试结果与 CSP 是否已更新不符。虽然我对 Javascript 没有信心,但测试似乎没有任何明显的语法错误。任何人都可以帮忙吗?