响应

时间:2018-06-15 05:50:21

标签: javascript reactjs post httprequest httpresponse

我现在陷入困境几天,我找不到解决方案。我有一个带有javascript函数的纯html片段:

<html> 
<head> 
<title>Title</title> 
<script language="Javascript" > 
function OnLoadEvent(){ 
document.123123.submit(); 
}
</script>
</head> 
<body OnLoad="OnLoadEvent();" > 
<form name="123123" action="http://www.123.com" method="POST"> 
<textarea style="display: none"name="PaReq"> 
</textarea>
<input type="hidden" name="ew" value="1">Hlleo
<input type="hidden" name="MD" value="testtest"> 
</form> 
</body> 
</html>

当呈现上面的代码时,它会显示一个提交按钮,点击此按钮我发布了一个内容类型的帖子请求:form-encoded nad i&m;重定向到http://www.123.com 。所以请求中的主持人是http://www.123.com。此请求返回一个简单的HTML代码。

现在我必须&#34;转换&#34;这段代码及其功能作出反应。所以我写道:

class Form extends React.Component {

  state = {
    ew: 1,
    md: 'testtest',
  }

  componentDidMount() {
    this.props.onSubmit({
      termUrl: this.state.termUrl,
      md: this.state.md,
    });
  }

  handleSubmit = (e) => {
    e.preventDefault();

    this.props.onSubmit({
      termUrl: this.state.termUrl,
      md: this.state.md,
    });
  }

  render() {
    return (
      <form
        name="123123"
        onSubmit={this.handleSubmit}
      >
        <h3>Form</h3>
        <textarea style={{ display: 'none' }} name="PaReq"></textarea>
        <span></span>
        <input
          type="hidden"
          name="TermUrl"
          value={this.state.termUrl}
        />
        <input
          type="hidden"
          name="MD"
          value={this.state.md}
        />
      </form>
    );
  }

}


class App extends React.Component {

  submit = (values) => {
    console.log('Submitting', values);
    const url = 'http://www.123.com';
    fetch(url, {
      method: 'post',
      headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
      },
      body: values,
    })
    .then((resp) => { console.log('Got response', resp); })
    .catch((err) => { console.error('Got error', err); })
  }

  render() {
    return (
     <div>
        <h2>React App</h2>
        <Form onSubmit={this.submit} />
      </div>
    );
  }
}

ReactDOM.render(<App />, document.getElementById('react'));

我的问题是,当渲染组件时,调用正在自动化(CORRECT),因为我在componentDidMount中添加了句柄提交,但我没有导航到http://www.123.com,主机是我的本地主机和不是以前的网址。因此,我的请求显示方法OPTIOS并且无法正常工作。 如何重定向到网址?另外如何从服务器呈现html响应?我应该添加窗口window.location = url?如果我在onSubmit中执行此操作,请求将返回以获取空params。请各位帮忙

0 个答案:

没有答案