flask中只有用jsonify传递的json数据才能被浏览器识别,其他json模块传出json数据不能被识别?

发布于 2022-09-06 21:26:52 字数 1243 浏览 22 评论 0

问题:

在使用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]
        }
    )

如图:
json不能被识别

响应头信息:
显示这是文本数据。
响应头信息

jsonify模块

代码:

rs = ({
        'code': 0,
        'msg': 'haha',
        'count': len(data),
    })
    return jsonify(rs)

浏览器可以识别:
图片描述

响应头
content-type类型变成了json
图片描述

不能识别为json,就无法使用jq等前端工具对数据处理。我试过了的。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

终止放荡 2022-09-13 21:26:52

自己设置响应头信息:
return simplejson.dumps({xxx}), 200, {'Content-Type': 'application/json'}

随梦而飞# 2022-09-13 21:26:52

jsonify封装的内部指定了content_type为application/json(mimetype参数)。

零度° 2022-09-13 21:26:52

用其他的你要手动设定响应的类型为content_type为application/json, jsonify因为是flask自带的所以内部设置了响应类型

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文