我有一个输入栏,必须在提交时重定向到另一个https页面(包含谷歌搜索)。表格的代码是下一个:
<form class="navbar-form navbar-left hide-inputs buscadoMovilLine" role="search" target="_blank" action-xhr="https://www.tuotromedico.com/buscadorg.php" action="https://www.tuotromedico.com/buscadorg.php" method="get">
<div class="form-group buscador">
<input class="SearchInputMovil2 inl" type="text" placeholder="Buscar..." class="form-control" name="q">
<button class="inl" type="submit" class="btn btn-default"><i class="fa fa-search lupaBuscarMovilBoton2" aria-hidden="true"></i></button>
</div>
</form>
我也添加了放大器形式的扩展名。官方文件说:
提交后重定向 通过AMP-Redirect-To响应标题提交后,amp-form还允许发布者将用户重定向到新页面。
请注意,您还必须更新Access-Control-Expose-Headers 响应标头包括AMP-Redirect-To到允许列表 头。
重定向网址必须是绝对的HTTPS网址,否则AMP会抛出 错误和重定向不会发生。
https://www.ampproject.org/es/docs/reference/components/dynamic/amp-form
但我不知道如何指定它。
答案 0 :(得分:2)
我知道2种方法,这是针对节点的:
app.post('/register', function (req, res) {
let form = new formidable.IncomingForm();
form.parse(req, function (err, fields) {
res.setHeader('AMP-Access-Control-Allow-Source-Origin', 'https://example.com/');
if (fields.first_name && fields.last_name) {
res.setHeader('AMP-Redirect-To', 'https://example.com/some-key');
res.status(200).json(fields);
} else {
res.status(400).json({error: 'Please select a size.'});
}
});
和第二个,在放大器中你可以使用navigateTo()
<form class="proceed__form" method="post" id="requirements-form"
action-xhr="https://localhost:4040/check-requirements"
target="_top"
on="submit-success:AMP.navigateTo(url='https://google.com')"
>
</form>
OR you can get variable from response
(res.status(200).json({message: 'success', navigateTo: domain + '/profile'});)
<form class="proceed__form" method="post" id="requirements-form"
action-xhr="https://localhost:4040/check-requirements"
target="_top"
on="submit-success:AMP.navigateTo(url=event.response.navigateTo)"
>
</form>