这是我想要在AMP模板上添加的Mailchimp表单:
<div id="mc_embed_signup">
<form action-xhr="https://settler.us19.list-manage.com/subscribe/post?u=5f7443b0f4fc25de5fecb0ee2&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文档https://amp.dev/documentation/guides-and-tutorials/learn/amp-caches-and-cors/amp-cors-requests?referrer=ampproject.org#cors-security-in-amp中的CORS,我在这里已经阅读了很多类似问题的答案但是,我的问题仍然没有解决。我在我的WordPress网站上有一个子域名,我把这行放在.htaccess(根域和子域)中但不幸的是,我的问题仍然存在。
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: *
</ifModule>
并且:
<ifModule mod_headers.c>
Header set Access-Control-Allow-Origin: "*"
</ifModule>
而且我不知道我该怎么办。
我认为正如Mailchimp documentation中提到的那样,“注意Mailchimp不支持客户端使用CORS请求实现我们的API,因为暴露帐户API密钥可能存在安全风险。”这可能是您遇到错误的原因。