【发布时间】:2020-03-16 22:07:24
【问题描述】:
我在前端有一个反应表单,用户可以在其中提交他们想问的问题。将表单数据发送到烧瓶服务器,使用一些 NLP 模型进行计算并得到结果。然后将结果返回给前端。
问题是:我可以看到发布到烧瓶服务器的数据,但是当我尝试从烧瓶服务器获取结果时得到空值。
这里是前端 QuestionForm.js 中的 handleSubmit 方法:
// post data to flask
axios.post('http://localhost:5000/api/newquestion', this.state)
.then(response => {
console.log(response)
})
.catch(error => {
console.log(error)
})
QuestionResult.js 中的componentDidMount() 方法:
class QuestionResult extends Component {
constructor() {
super();
this.state = {
questionResult: ''
}
}
componentDidMount() {
axios.post('http://localhost:5000/api/newquestion')
.then(response => {
console.log(response)
this.setState({questionResult: response.data})
})
.catch(error => {
console.log(error);
})
}
render() {
const {questionResult} = this.state
return (
<div>
<h1>{questionResult}</h1>
</div>
)
}
}
烧瓶端点(它只是一个测试模型,我现在正试图返回问题本身):
from flask import Flask, request, jsonify
from flask_cors import CORS
app = Flask(__name__)
CORS(app)
@app.route("/api/newquestion", methods=['GET', 'POST'])
def get_user_question():
if request.method == 'POST':
user_question = request.get_json()
print(user_question)
return jsonify(user_question)
app.run(port=5000, debug=True)
这是我从 python 控制台得到的:
127.0.0.1 - - [20/Nov/2019 23:01:12] "OPTIONS /api/newquestion HTTP/1.1" 200 -
None
127.0.0.1 - - [20/Nov/2019 23:01:12] "GET /api/newquestion HTTP/1.1" 200 -
{'question': 'aaaa'}
127.0.0.1 - - [20/Nov/2019 23:01:13] "POST /api/newquestion HTTP/1.1" 200
但是,当我导入另一个函数 test.py 时:
def hello():
return "hi there!"
并将端点更改为:
@app.route("/api/newquestion", methods=['GET', 'POST'])
def get_user_question():
return hello()
我可以看到消息“你好!”在我的反应页面上成功呈现。
【问题讨论】:
-
检查您的 API 上的日志。
-
您可能需要使用 CORS 进行额外配置:如果有帮助,请参阅stackoverflow.com/q/39550920/1453578 的两个答案
标签: javascript reactjs flask