You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Nuxt3嵌入Qualtrics脚本无内容:CORS与安全策略问题求助

解决Nuxt3中嵌入Qualtrics调查弹窗无内容的安全配置问题

问题场景

在Nuxt3应用中嵌入Qualtrics外部脚本后,仅能显示调查弹窗框架但无内容,鼠标悬停提示[our company].qualtrics.com refused to connect。现有nuxt.config安全配置已添加frame-src、form-action相关规则,但问题仍存在。

解决方案

1. 调整Cross-Origin-Embedder-Policy(COEP)配置

当前设置的credentialless会强制要求跨源资源携带特定CORP头,而Qualtrics的资源可能未适配该规则。修改为unsafe-none可解除此限制:

security: {
  headers: {
    crossOriginEmbedderPolicy: 'unsafe-none', // 替换原有的credentialless
    // ... 其他原有配置
  }
}

2. 完善CSP规则,覆盖Qualtrics全域名范围

除已有规则外,补充Qualtrics主域名及子域名到多个CSP指令中,同时添加child-src兼容旧版浏览器:

security: {
  headers: {
    contentSecurityPolicy: {
      'connect-src': [
        '*',
        'https://[our company].qualtrics.com',
        'https://*.qualtrics.com' // 覆盖Qualtrics子域名资源
      ],
      'base-uri': 'self',
      'default-src': 'self',
      'font-src': [
        "'self'",
        'data:',
      ],
      'form-action': [
        "'self'",
        'https://[our company].qualtrics.com',
        'https://*.qualtrics.com'
      ],
      'img-src': [
        "'self'",
        'https:',
        'data:',
      ],
      'object-src': 'none',
      'script-src-attr': 'none',
      'style-src': [
        "'self'",
        'https:',
        "'unsafe-inline'",
      ],
      'script-src': [
        "'self'",
        'https://[our company].qualtrics.com',
        'https://*.qualtrics.com', // 明确允许Qualtrics脚本源
        "'unsafe-inline'",
        "'strict-dynamic'",
        "'nonce-{{nonce}}'"
      ],
      'frame-src': [
        "'self'",
        'https://[our company].qualtrics.com',
        'https://*.qualtrics.com'
      ],
      'child-src': [ // 添加child-src兼容部分浏览器框架加载规则
        "'self'",
        'https://[our company].qualtrics.com',
        'https://*.qualtrics.com'
      ],
      'frame-ancestors': 'self',
      'upgrade-insecure-requests': true,
    },
    // ... 其他原有配置
  },
}

3. 确保Qualtrics脚本加载符合CSP要求

如果使用了nonce机制,需在Qualtrics的脚本标签上添加对应nonce属性:

<script nonce="{{nonce}}" src="https://[our company].qualtrics.com/jfe/form/SV_XXXXXX"></script>

验证步骤

  1. 先修改COEP为unsafe-none并重启Nuxt服务,测试弹窗是否正常加载内容;
  2. 若问题解决,可逐步尝试恢复COEP为credentialless,同时检查Qualtrics资源是否支持CORP头(若无法从Qualtrics后台配置则需保留unsafe-none);
  3. 确认CSP规则中所有涉及Qualtrics的域名都已正确添加。

内容的提问来源于stack exchange,提问作者Suki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 05:25:09