如果您的网站使用 内容安全策略 (Content Security Policy - CSP) ↗ 响应头,您必须配置它以允许 Turnstile 的脚本和 iframe。如果没有正确的 CSP 指令,Turnstile 可能会加载失败。
Cloudflare 建议使用配合 CSP3 ↗ 文档记录的基于 nonce 的方法。在 api.js 脚本标签中包含您的 nonce,Turnstile 会将其传播到动态加载的资源中。Turnstile 兼容 strict-dynamic ↗。
或者,将以下值添加到您的 CSP 响应头中:
- script-src:
https://challenges.cloudflare.com - frame-src:
https://challenges.cloudflare.com
我们建议使用 Google 的 CSP 评估工具 (Google's CSP Evaluator) ↗ 验证您的 CSP。
如果您正以 pre-clearance 模式使用 Turnstile,Turnstile 会通过向您域名的 /cdn-cgi/ 特殊端点发起 fetch 请求来设置 cf_clearance cookie。
为了使此请求成功,您的 connect-src 指令必须包含 'self'。