Javascript 当内容类型未设置为“0”时,jQuery无法理解JSON响应;应用程序/json“;

Javascript 当内容类型未设置为“0”时,jQuery无法理解JSON响应;应用程序/json“;,javascript,jquery,json,google-app-engine,Javascript,Jquery,Json,Google App Engine,Google App Engine服务器正在返回一个JSON字符串以响应以下帖子: self.response.headers.add_header("Content-Type", "application/json") return self.response.out.write(json_string) 这在运行在Google应用程序引擎启动器中的本地开发服务器上起作用。正在设置标头,jQuery代码正在正确解析响应 然而,在生产环境中,在Google前端(当我部署到生产环境

Google App Engine服务器正在返回一个JSON字符串以响应以下帖子:

self.response.headers.add_header("Content-Type", "application/json")       
return self.response.out.write(json_string)
这在运行在Google应用程序引擎启动器中的本地开发服务器上起作用。正在设置标头,jQuery代码正在正确解析响应

然而,在生产环境中,在Google前端(当我部署到生产环境时),页面正在中断,因为jQuery没有正确解析响应。我发现本地和生产(它们运行相同的代码)之间的唯一区别是,生产上的响应忽略了我将内容类型设置为“application/json”的尝试

所以这可能意味着我试图设置非法/非标准的内容类型。但是,它在本地工作,这就是我如何让jQuery理解JSON字符串的原因


那么,我如何格式化响应,以便jQuery知道它是JSON并正确解析?

这可能看起来很愚蠢,但您可能需要将第一个参数大写为
add_header
,因此它将是
“Content Type”
?可能是您的本地服务器原谅了这些参数,而Google服务器只会按原样提交标题。您是否可以检查通过Firebug或WebKit developer面板返回的标题,以查看发送的响应标题?

尝试:

self.response.headers['Content-Type'] = "application/json"
self.response.out.write(json_string)

只需将
“json”
作为
数据类型
参数传递给AJAX调用,并且不管内容类型如何,响应都将被视为json:)

值得一试,但不需要掷骰子。更新了帖子以反映资本化。我想我找到了正确的文档。类似于:$.ajax({type:“POST”,url:/game checkin),data:dataString,dataType:“json”,这是我正在使用的,它对我有效。只需使用Chrome的开发工具进行验证。没有“非法内容类型”获取应用程序引擎的响应。您如何确定它未设置正确的内容类型?