【问题标题】:AMP action-xhr failed load file 403 (Forbidden)AMP action-xhr 加载文件失败 403(禁止)
【发布时间】:2018-12-30 00:54:27
【问题描述】:

我的 AMP 网站中有一个 <form>,但它无法正常工作。

控制台一直显示此错误消息:

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

我的表单页面在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>

【问题讨论】:

标签: php forms amp-html


【解决方案1】:

为确保 AMP 页面的请求和响应有效且安全,必须执行以下操作:

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

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

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

如果设置了 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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-10-08
    • 2022-10-01
    • 2013-11-11
    • 2016-11-17
    • 2020-05-04
    • 2017-03-09
    • 2016-04-25
    • 2014-11-15
    相关资源
    最近更新 更多