Google App Engine服务器正在返回一个JSON字符串以响应POST:
self.response.headers.add_header("Content-Type", "application/json")
return self.response.out.write(json_string)
这适用于在Google App Engine Launcher中运行的本地开发服务器。正在设置标头,jQuery代码正在正确解析响应。
然而,在生产中,在Google前端(当我部署到生产时),页面正在崩溃,因为jQuery没有正确解析响应。我可以在本地和生产之间找到的唯一区别(它们运行相同的代码)是生产响应,忽略了我尝试将Content-Type设置为" application / json"。
这可能意味着我试图设置非法/非标准的Content-Type。但是,它在本地工作,这就是我如何让我的jQuery理解JSON字符串。
那么,我如何格式化响应以便jQuery知道它的JSON并正确解析?
答案 0 :(得分:4)
只需将"json"
作为dataType
参数传递给AJAX调用,并且无论内容类型如何,响应将被视为json:)
答案 1 :(得分:3)
尝试:
self.response.headers['Content-Type'] = "application/json"
self.response.out.write(json_string)
答案 2 :(得分:0)
这可能看起来很愚蠢,但您可能需要将第一个参数大写为add_header
,因此它会"Content-Type"
?可能是您的本地服务器对参数感到宽容,而Google服务器只是按原样提交标头。您是否可以检查通过Firebug或WebKit开发人员面板返回的标头,以查看正在发送的响应标头?