首页 > 解决方案 > Mailchimp AMP 集成错误:访问 * from origin * 已被 CORS 策略阻止:没有“Access-Control-Allow-Origin”标头

问题描述

这是我想在我的 AMP 模板中添加的 Mailchimp 表单:

<div id="mc_embed_signup">
    <form action-xhr="https://settler.us19.list-manage.com/subscribe/post?u=5f7443b0f4fc25de5fecb0ee2&amp;id=c3c65d7258" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank" novalidate>
        <div id="mc_embed_signup_scroll">
           <label for="mce-EMAIL">Subscribe to our newsletter</label>
              <input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL" placeholder="email address" required>
              <div style="position: absolute; left: -5000px;" aria-hidden="true"><input type="text" name="#" tabindex="-1" value=""></div>
            <div class="clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
       </div>

      </form>
 </div>

我的 AMP 已通过验证,AMP 方面一切正常,我唯一的问题是当我点击注册时出现此错误:

CORS 策略已阻止从源“XXXX”获取“XXXX”的访问权限:请求的资源上不存在“Access-Control-Allow-Origin”标头。如果不透明的响应满足您的需求,请将请求的模式设置为“no-cors”以获取禁用 CORS 的资源。

表单提交失败:错误:XHR 获取失败(https://XXXX.list-manage.com/...):获取失败​​​...

我已经阅读了 AMP 文档中的 CORS https://amp.dev/documentation/guides-and-tutorials/learn/amp-caches-and-cors/amp-cors-requests?referrer=ampproject.org#cors-security-仪表放大器 ,我在这里阅读了很多类似问题的答案,但我的问题仍然没有解决。我的 WordPress 网站上有一个子域,我将这一行放在 .htaccess(根域和子域)中,但不幸的是,我的问题仍然存在。

<ifModule mod_headers.c>
    Header set Access-Control-Allow-Origin: *
</ifModule>

并且:

<ifModule mod_headers.c>
  Header set Access-Control-Allow-Origin: "*"
</ifModule>

而且我不知道我该怎么办了。

标签: .htaccessmailchimpamp-htmlmailchimp-api-v3.0amp-email

解决方案


我认为正如Mailchimp 文档中提到的那样,“注意 Mailchimp不支持使用 CORS 请求在客户端实现我们的 API,因为暴露帐户 API 密钥存在潜在的安全风险。” 这可能是您遇到错误的原因。


推荐阅读