Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 试图将表单数据从React.js表单发送到Flask API,但它没有';不允许提交到MongoDB_Javascript_Python_Reactjs_Mongodb_Flask Restful - Fatal编程技术网

Javascript 试图将表单数据从React.js表单发送到Flask API,但它没有';不允许提交到MongoDB

Javascript 试图将表单数据从React.js表单发送到Flask API,但它没有';不允许提交到MongoDB,javascript,python,reactjs,mongodb,flask-restful,Javascript,Python,Reactjs,Mongodb,Flask Restful,为了理解使用react.js、python(Flask)和mongodb的API函数,我正在尝试创建一个简单的create用户表单。然而,我不断得到一个错误,即没有任何输入被发送到Flask后端。我能解决这个问题吗 这是identity.py,post使用Flask\u Restful获取句柄 class NewUser(Resource): def post(self): name = request.form.get("name") email

为了理解使用react.js、python(Flask)和mongodb的API函数,我正在尝试创建一个简单的create用户表单。然而,我不断得到一个错误,即没有任何输入被发送到Flask后端。我能解决这个问题吗

这是identity.py,post使用Flask\u Restful获取句柄

class NewUser(Resource):
def post(self):
    
    name = request.form.get("name")
    email = request.form.get("email")
    password = request.form.get("password")
    user = User(name=name, email=email, password=password)
    if not name:
        return {'Error': "Name Not Included"}, 403
    if not email:
        return {'Error': "Email Not Included"}, 404
    if not password:
        return {'Error': "Password Not Included"}, 405
    user.hash_password()
    user.save()
    id = user.id
    return {'id': str(id)}, 200
这里是React_应用程序中的app.js正在与代理连接。代理可以正常工作,因为它能够从后端发送标题,而不会出现任何错误

    import React, {Component} from 'react';

class App extends Component {
  constructor(props) {
    super(props);
    this.state = {
      name: '',
      email: '',
      password: '',
      titleData: [],
      userData: []
    };
    this.handleChange = this.handleChange.bind(this)
    this.handleSubmit = this.handleSubmit.bind(this)
  }

  handleChange(event) {
    this.setState({
      name: event.target.value,
      email: event.target.value,
      password: event.target.value
    })
  }

  ///Find a way to submit POST form to python_flask
  async handleSubmit(event) {
    event.preventDefault()
    console.log('Submit')
    await fetch('/user/join', {
      method: 'POST'
    })
      .then(res => res.json())
      .then(json => {
        this.setState({
          userData: json
        })
      })
      .catch(() => {
        console.log("Error in Data")
      })
  }

  async getData() {
    await fetch('/get')
      .then(response => response.json())
      .then(json => {
        this.setState({
          titleData: json
        })
      })
  }

  async componentDidMount() {
    this.getData()
  }

  render() {
    return (
      <div className="App">
        <header>
          <h1>{this.state.titleData.title}</h1>
        </header>
        <div>
          <p>heeheehe</p>
          <form onSubmit={this.handleSubmit}>
            <h3>New User? Sign in here!</h3>
            <div>
              <input 
                type="text"
                name="name"
                placeholder="Name"
                value={this.props.value}
                onChange={this.props.handleChange}
              />
            </div>
            <div>
              <input 
                name="email"
                placeholder="Email"
                value={this.props.value}
                onChange={this.props.handleChange}
              />
            </div>
            <div>
              <input
                name="password"
                placeholder="Password"
                value={this.props.value}
                onChange={this.props.handleChange}
              />
            </div>
            <button>Press Me</button>
          </form>
        </div>
      </div>
    )
  }
}

export default App;
import React,{Component}来自'React';
类应用程序扩展组件{
建造师(道具){
超级(道具);
此.state={
名称:“”,
电子邮件:“”,
密码:“”,
标题数据:[],
用户数据:[]
};
this.handleChange=this.handleChange.bind(this)
this.handleSubmit=this.handleSubmit.bind(this)
}
手变(活动){
这是我的国家({
名称:event.target.value,
电子邮件:event.target.value,
密码:event.target.value
})
}
///找到一种向python提交POST表单的方法
异步handleSubmit(事件){
event.preventDefault()
console.log('Submit')
等待获取(“/user/join”{
方法:“发布”
})
.then(res=>res.json())
。然后(json=>{
这是我的国家({
userData:json
})
})
.catch(()=>{
console.log(“数据错误”)
})
}
异步getData(){
等待获取(“/get”)
.then(response=>response.json())
。然后(json=>{
这是我的国家({
标题数据:json
})
})
}
异步组件didmount(){
这个文件名为getData()
}
render(){
返回(
{this.state.titleData.title}
嘻嘻

新用户?在这里登录! 按我 ) } } 导出默认应用程序;