Amp-form 不会重定向到另一个页面

Asi*_*er 1 forms redirect amp-html

我有一个输入栏,必须在提交时重定向到另一个 https 页面(包含 google-search)。表单的代码如下:

<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> 
Run Code Online (Sandbox Code Playgroud)

我也添加了 amp-form 扩展。官方文档是这样说的:

提交后重定向 amp-form 还允许发布者在提交后通过 AMP-Redirect-To 响应标头将用户重定向到新页面。

请注意,您还必须更新 Access-Control-Expose-Headers 响应标头,以将 AMP-Redirect-To 包含到允许的标头列表中。

重定向 URL 必须是绝对 HTTPS URL,否则 AMP 会抛出错误并且不会发生重定向。

https://www.ampproject.org/es/docs/reference/components/dynamic/amp-form

但我不确定如何指定。

小智 7

我知道 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.'});
      }
});
Run Code Online (Sandbox Code Playgroud)

第二,在放大器中你可以使用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>
Run Code Online (Sandbox Code Playgroud)