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

时间:2017-03-13 10:42:19

标签: forms redirect amp-html

我有一个输入栏,必须在提交时重定向到另一个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

但我不知道如何指定它。

1 个答案:

答案 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>