【问题标题】:incorrect json mimetype?不正确的 json mimetype?
【发布时间】:2023-03-23 07:37:01
【问题描述】:

我已经按照 How do I JSON serialize a Python dictionary?What is the correct JSON content type? 创建了这样的 json 响应:

def json_response(something):
    return HttpResponse(
        simplejson.dumps(something),
        content_type = 'application/json; charset=utf8'
    )

我有两个抱怨:

a) 当我直接在 Google Chrome 中点击我的 ajax URL 时,Inspector 说

资源解释为文档但 以 MIME 类型传输 应用程序/json。

也试过火狐,它可以作为文件下载。

b) 当我使用 jQuery.ajax 时,仅当我不传递 dataType 参数时才有效,如果我输入例如 dataType:'json' 那么我会在 jquery.js 文件中收到此错误

Uncaught SyntaxError: Unexpected token :

我做错了什么?

我正在使用 jquery 1.5.2 和 Django Trunk(r15915 大约两周前更新)并且只调用相同的域 url。

编辑: jQuery.getJSON 不起作用,但适用于 jquery 1.4.2。 在 Request Headers 上查看 firebug 控制台显示 Content-Type: application/x-www-form-urlencode,这可能与问题有关。

提前致谢

【问题讨论】:

    标签: jquery ajax django json simplejson


    【解决方案1】:
    1. 是的,当您访问 JSON URL 时,某些浏览器会将其视为 text/html,而其他浏览器会将其视为外部文件类型。您可以使用 JSONView 之类的插件。

    2. 这应该可以正常工作,即使它是多余的。这听起来像一个错字。您还应该通过JSONLint 仔细检查您的 JSON 文档是否有效。

    【讨论】:

    • 我已经用过JSONLint并且标记为valid,奇怪的是我不能使用jQuey.getJSON函数...我需要使用jQuery.ajax而不使用dataType。
    【解决方案2】:

    jquery validate 插件有一个错误,更新到最新版本解决了这个问题。

    有关此问题的更多信息: https://forum.jquery.com/topic/getjson-and-jquery-1-5

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-21
      • 1970-01-01
      • 2016-09-19
      • 2019-11-03
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多