【问题标题】:React handle form submit after being redirected by server (with data )?被服务器重定向后反应处理表单提交(带有数据)?
【发布时间】:2018-09-06 08:42:49
【问题描述】:

React 前端提交一个表单(POST),该表单被发送到后端。然后这个服务器响应一个包含 html 的 js 对象(我认为它应该重定向)?

我应该如何将用户重定向到收到的页面?

例如,如果我curl -X POST api.example.com api,它会返回这样的纯 html:

<html> ... </html>

当使用 postman 时,它会自动渲染这个 html。我应该如何在 React 中处理这个问题?

【问题讨论】:

  • 为什么需要从后端发送完整的 html?只需从后端返回 ur 并使用 location.href 将其重定向到前端
  • 你能检查一下react-router-doms redirecthistory 包吗?
  • @YousafHassan 不幸的是,我们无法控制服务器,也无法让他们更改返回的内容。

标签: javascript node.js reactjs express frontend


【解决方案1】:

如果你使用 NodeJS + express

例子:

http.get('*',function(req,res){  
    res.redirect('/'+req.url);
})

https://expressjs.com/en/api.html

【讨论】:

    【解决方案2】:

    您可以使用 react-router 重定向到特定页面。

    Step 1: Wrap your <App /> inside <BrowserRouter />
    

    转到调用服务的组件,然后在收到服务响应后重定向用户。

    this.route.navigate(['/']);
    

    正如您所说,您接收 HTML 以响应 REST 服务调用。如果您想在页面上呈现此内容。

    let content = null;
    
    content = response.data; // assign data to variable
    

    现在在组件中显示如下:

    class Content extends Component {
      render () {
        return (
         {this.content}
         ); 
        }
     }
    

    【讨论】:

      猜你喜欢
      • 2020-06-17
      • 1970-01-01
      • 2011-11-23
      • 1970-01-01
      • 2011-12-26
      • 2021-03-31
      • 1970-01-01
      • 1970-01-01
      • 2013-04-13
      相关资源
      最近更新 更多