我有一个reactjs作为前端,flask服务器作为后端。我试图从注册表中发送数据(使用Formik)。当我做一个post请求时,我有一个错误500。我注意到当我使用postman时,一切都很好,flask在postgresql中创建了一个新记录。
前端在 http://localhost:3000/register
上,后端在 http://localhost:5002/adduser
我现在应该做什么?
function handleSubmit(values, actions) {
const options = {
headers: {
'Content-type': 'application/json',
'Access-Control-Allow-Origin': '*',
'Referrer-Policy': 'origin-when-cross-origin'
},
method: 'POST',
mode: 'no-cors',
body: JSON.stringify(values)
}
fetch('http://localhost:5002/adduser', options)
.then(response => console.log(response))
.catch(error => console.error(error))
}
@app.route('/adduser', methods=['GET', 'POST'])
def register():
if request.method == "POST":
print(request.form['userName'])
print(request.form['email'])
data = {
'name': request.form['userName'],
'surname': request.form['surname'],
'email': request.form['email'],
'user_password': request.form['password'],
'phone_number': request.form['phoneNumber']
}
mydb = Database(host=os.getenv('host'), database=os.getenv('database'), user=os.getenv('user'), password=os.getenv('password'))
mydb.insert_data(data)
return jsonify({'mydata': data})
# name = request.form['name']
# surname = request.form['surname']
# email = request.form['email']
# password = request.form['password']
# phone_number = request.form['phoneNumber']
return "<h1>Hello Flask</h1>"
if __name__ == "__main__":
app.run(debug=True, port=5002)
app.secret_key = os.urandom(24)
无法通过json Content-type请求访问request.form。
你需要更换
'Content-type': 'application/json'
通过
'Content-Type': 'multipart/form-data'
您的句柄提交函数将类似于以下内容:
function handleSubmit(values, actions) {
let options = {
headers: {
'Content-Type': 'multipart/form-data'
},
method: 'POST'
};
options.body = new FormData();
for (let key in values) {
options.body.append(key, values[key]);
}
fetch('http://localhost:5002/adduser', options)
.then(response => console.log(response))
.catch(error => console.error(error))
}
}
}
另一个可能的解决方案是保持客户端代码不变,并通过request.json而不是request.form访问您的数据。
我尝试使用axios对烧瓶服务器进行POST: 现在是烧瓶的部分 但是,我最终会出现以下错误: 无法加载XMLHttpRequesthttp://127.0.0.1:5000/test.对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”标头。起源'http://localhost:3000因此不允许访问。 为什么?我将按照建议设置标题
我遇到了一个问题,我的javascript/python脚本。我想做的是传递一个字符串到python烧瓶,这样我以后可以使用它。当我点击按钮发送字符串时,没有错误,但什么也没发生。我基本上是一个自学成才的程序员,所以如果我的脚本格式不正确,我道歉! Javascript: 蟒蛇瓶: 我希望能够看到打印到控制台或命令提示符的字符串,我假设print()是正确的方法?欢迎任何帮助,谢谢:)
我在用烧瓶做一个网站。它在top.html中使用sql显示一个列表,其中每个元素都是超文本。 所以我想知道从列表中点击了哪个超文本,这样我就可以在/text中加载它各自的内容。请同时提供python代码(flask代码)。
客户端代码: 服务器代码: 问题是我的用户名和密码总是空的。 我还尝试使用: 和 打印内容时,我有: 编辑: 我添加了json。转储和使用请求。获取_json(),它就成功了
我遇到了表单400错误,并尝试了其他解决方案。它让我的状态有所改善,但并没有阻止错误的发生。我有 模板/注册。html: 形式。py: 这些观点。py: 这些指纹看起来像 就像我预料的那样。我假设根据字段的验证器重新呈现页面,并显示错误消息“Passwords must match”。我该怎么做才能让此表单失败并重新提交页面?非常感谢。
嗨,我正在编写一个博客脚本,但收到400个错误请求。Python代码: Html代码: 我以前从未收到过这样的错误,我不知道为什么。我猜表格可能有错误。 求你帮帮我