Flask JSON 发布请求不起作用
Posted
技术标签:
【中文标题】Flask JSON 发布请求不起作用【英文标题】:Flask JSON post request not working 【发布时间】:2017-01-28 00:00:52 【问题描述】:我正在使用 react 向烧瓶后端提交表单。数据以json形式提交,这是一个例子。
add_new_user(e)
e.preventDefault()
var user_details =
user_details['fname'] = this.state.first_name
user_details['last_name'] = this.state.last_name
var post_request = new Request('http://127.0.0.1:5000/add_new_user',
method: 'post',
body: JSON.stringify(user_details)
)
fetch(post_request).then(function(response)
console.log(response)
)
在我的后端,代码如下所示,
@app.route('/add_new_user', methods=['POST'])
def add_user():
content = request.json()
print content
return 'user added'
但是内容变量为空,因此屏幕上的打印数据为无。我怎样才能解决这个问题?我究竟做错了什么。谢谢
【问题讨论】:
【参考方案1】:试试request.get_json(force=True)
。建议使用get_json()
而不是json()
方法。 force=True
允许忽略内容类型要求。
【讨论】:
谢谢,force=True
似乎可以工作,但是当我在没有 force=True 的情况下添加content-type: application/json
时,它仍然无法工作。这是为什么呢?
@rksh 确保您在 React 客户端中正确设置了内容需求类型。可能是一些缓存问题。也尝试使用例如发出请求卷曲并查看结果。 curl -H "Content-Type: application/json" -X POST -d '"fname":"some first name","last_name":"some last name"' http://127.0.0.1:5000/add_new_user
嗨,抱歉,我正确设置了内容类型,但是我必须安装 flask-cors 扩展以启用 cors 才能正常工作。谢谢
@rksh 不客气。希望答案是有帮助的)。【参考方案2】:
您可能需要将请求的请求内容类型设置为application/json
。否则,它将是None
。
【讨论】:
添加了content-type: application/json
,但它似乎不起作用,这是为什么呢?以上是关于Flask JSON 发布请求不起作用的主要内容,如果未能解决你的问题,请参考以下文章