今天在用xhr向flask的后端路由传递信息时报错了,一直提示decode失败,反反复复检查格式,没错,确实是有效的json格式,还提示请求头不是json格式的,检查了几遍也没错。视图函数代码如下
@blue.route('/write/save/', methods=['GET', 'POST'])
def save_data():
data = request.data.decode('utf8')
data = json.loads(data)
print(data)
return 'Success' # 返回响应
可是一看输出,这不是已经把data数据打印出来了吗
而且还提示我消息头不是application/json,所以在视图函数加上以下代码:
print("content_type:", request.headers.get("content_type"))
结果居然打印了两个请求头类型,所以判断肯定是发送了两个post请求,看下js,没有多余的请求,再看看html代码,果然找到了一个form表单,action对应的视图函数正是/write/save,请求的时候忘删了把这个注释掉,再进行json解析,ok,成功。我还以为是内容格式有问题,原来bug在这。