flask中只有用jsonify传递的json数据才能被浏览器识别,其他json模块传出json数据不能被识别?
问题:
在使用flask,向前端传json数据时,发现只有用jsonify模块传出的json数据才能被识别,其他的都不行。
表现
火狐会把json进行格式化处理。
其他json模块
利用自带的及simplejson等json模块封装json数据,传给火狐,并没有识别为json数据。
服务端代码:
return simplejson.dumps(
{
'code': 0,
'msg': 'haha',
'count': len(data),
'data': data # [convert_to_builtin_type(d) for d in rs]
}
)
如图:
响应头信息:
显示这是文本数据。
jsonify模块
代码:
rs = ({
'code': 0,
'msg': 'haha',
'count': len(data),
})
return jsonify(rs)
浏览器可以识别:
响应头
content-type类型变成了json
不能识别为json,就无法使用jq等前端工具对数据处理。我试过了的。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
自己设置响应头信息:
return simplejson.dumps({xxx}), 200, {'Content-Type': 'application/json'}
jsonify封装的内部指定了content_type为application/json(mimetype参数)。
用其他的你要手动设定响应的类型为content_type为application/json, jsonify因为是flask自带的所以内部设置了响应类型