清除APM表单的缓存

问题描述 投票:0回答:1

我用apm-form元素创建了APM页面。表单在我的服务器和本地环境上工作得很好。但是,当我访问网站表单AMP url时,我无法发送任何内容。在我的控制台中我收到此错误:

从'https://example.co.uk/form.php?_gl=....GSg..&__amp_source_origin=https%3A%2F%2Fexample.co.uk'获取'https://example-co-uk.cdn.ampproject.org'的访问权限已被CORS政策阻止:'Access-Control-Allow-Origin'标题的值'http://example.test'不等于提供的来源。让服务器发送带有效值的标头,或者,如果不透明的响应满足您的需要,请将请求的模式设置为“no-cors”以获取禁用CORS的资源。

我知道如何修复Cors问题。但请注意

标头的值为'http://example.test'

Amp-form具有设置动作-xhr到//example.co.uk/form.php。在form.php中设置所有标头:

header('AMP-Access-Control-Allow-Source-Origin: https://example.co.uk');
header("AMP-Same-Origin: true");
header("Access-Control-Allow-Credentials: true");
header ("Access-Control-Allow-Origin: https://example-co-uk.ampproject.org");
header ("Access-Control-Expose-Headers: Content-Length, X-JSON");
header ("Access-Control-Allow-Methods: GET, POST, PATCH, PUT, DELETE, OPTIONS");

以前我正在开发这个页面。我发送到带有example.test的form.php的服务器版本的header部分。我假设Google以某种方式缓存了这个example.test。我不知道缓存的位置以及如何清除此缓存。

我试图使用https://developers.google.com/amp/cache/update-cache更新缓存。我卡住了,我从谷歌enter image description here得到了404

有什么建议如何告诉AMP example.test被example.co.uk取代?

cors amp-html cache-control
1个回答
0
投票

当缓存更新不起作用时 - 您可以:

1)更新Sitemap并更改页面的最后更新标记(google bot会检查)

2)您可以将标题更改为

Header set Access-Control-Allow-Origin '*'

3)保持这样 - 据说google每24小时更新一次缓存。

© www.soinside.com 2019 - 2024. All rights reserved.