AMP action-xhr失败加载文件403(禁止)

时间:2018-07-22 10:15:58

标签: php forms amp-html

我在AMP网站上有一个<form>,它不起作用。

控制台继续显示此错误消息:

  

“ POST https://www.example.com/submit?__amp_source_origin=https%3A%2F%2Fwww.javwebnet.com 403”

我的表单页面位于example.com/contactus中。

表单如下:

<form method="post" action-xhr="/submit.php" target="_top">
<input type="text" name="name" required>
<input type="email" name="email" required>
<input type="submit" value="submit">
</form>

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:0)

要确保对AMP页面的请求和响应有效且安全,必须遵循以下条件:

  1. 验证请求。
  2. 发送适当的响应头。

如果请求是状态更改(例如POST),请检查来源是否来自来源来源(通过__amp_source_origin)(资源链接)。验证CORS请求后,生成的HTTP响应必须包含以下标头: 访问控制允许来源: AMP访问控制允许源来源: Access-Control-Expose-Header:AMP-访问控制-允许源-来源

对于处理可能会更改系统状态的状态更改请求,请检查以下内容:

如果设置了Origin标头:

如果原点与以下值之一不匹配,请停止并返回错误响应:

  • *。ampproject.org
  • *。amp.cloudflare.com
  • 发布者的出身(也就是您的出身)

其中*表示通配符匹配,而不是实际的星号(*)。

  1. 如果__amp_source_origin查询参数的值不是发布者的来源,请停止并返回错误响应。
  2. 如果以上两项均通过,则处理请求。

如果未设置Origin标头:

  1. 验证请求是否包含AMP-Same-Origin:true标头。如果请求不包含此标头,请停止并返回错误响应。
  2. 否则,处理请求。

以下资源链接会有所帮助:

https://ampbyexample.com/components/amp-form/ https://github.com/ampproject/amphtml/blob/master/extensions/amp-form/amp-form.md#security-considerations https://www.ampproject.org/docs/fundamentals/amp-cors-requests https://github.com/ampproject/amphtml/blob/master/spec/amp-cors-requests.md