不正确的json mimetype?

时间:2011-04-06 21:21:21

标签: jquery ajax django json simplejson

我已按照此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网址时,Inspector说

  

资源被解释为Document但是   使用MIME类型转移   应用/ JSON。

也试过Firefox,它作为一个文件下载。

b)当我使用jQuery.ajax时,只有当我没有传递dataType参数时,如果我输入例如dataType:'json'那么我在jquery.js文件上出现此错误

  

Uncaught SyntaxError:意外的令牌   :

我做得不好?

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

编辑: jQuery.getJSON不起作用,但是在jquery 1.4.2上工作。 在请求标题上查看firebug控制台说Content-Type:application / x-www-form-urlencode,这可能与问题有关。

提前致谢

2 个答案:

答案 0 :(得分:1)

  1. 是的,当您访问JSON URL时,某些浏览器将其视为text / html,而其他浏览器将其视为外部文件类型。您可以使用JSONView等附加组件。

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

答案 1 :(得分:0)

jquery validate插件存在错误,更新到最新版本解决了问题。

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