我已将AMP添加到我的项目中,并试图找出表单操作中http
协议的验证问题。在官方示例中,我可以看到可能有相对URL:https://github.com/ampproject/amphtml/blob/master/examples/forms.amp.html
1)当我尝试使用相对URL时,它变得无效
不允许标签“form”中属性“action”的相对URL“/ amp / someurl”。
2)当我尝试使用绝对URL时,它抱怨协议
标签“form”中的属性“action”的URL协议“http:”无效。
当我使用https
而不是http
时,最后一个错误消失了。但是问题在于该网站没有https
,并且该表格仅用于搜索。
也许我必须使用一些<amp-iframe>
才能解决它?
最佳答案
如 <amp-form>
specifications中所述,您不能为action
属性使用相对路径,并且它必须是https
。 <amp-iframe>
也是一样,https
属性需要src
。
之所以采用强制性https
协议,是因为AMP页被缓存在Google AMP服务器上,并且从AMP服务器提供服务时,它们将通过https
进行传递。现在,如果您的页面中有http
请求,则出于安全原因将阻止它们。
关于forms - amp-html http协议(protocol)限制,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38915693/