我在让 jQuery 在 GAE python 2.7 上工作时遇到了一些问题。主要问题是jQuery无法捕获服务器返回的json数据。
一个没有什么特别的简单评论表单:
<form action="/postcomment/" method="post" id="commentform">
<input type="text" name="author" id="author" onfocus="if(this.value=='Name: (required)') this.value='';" onblur="if(this.value=='') this.value='Name: (required)';" {% if name %}value="{{ name }}"{% else %}value="Name: (required)"{% endif %} size="22" tabindex="1" aria-required='true' />
<input type="text" name="email" id="email" onfocus="if(this.value=='E-Mail: (required)') this.value='';" onblur="if(this.value=='') this.value='E-Mail: (required)';" {% if email %}value="{{ email }}"{% else %}value="E-Mail: (required)"{% endif %} size="22" tabindex="2" aria-required='true' />
<textarea name="comment" id="comment" cols="100%" rows="10" tabindex="3"></textarea>
<input name="submit" type="submit" id="submit" tabindex="4" value="Submit" />
</form>
我的 jQuery 代码(仅结构使其更简单):
$("#submit").click(function() {
$.ajax({
dataType: 'json',
beforeSubmit: function() {
},
timeout: 60000,
error: function(request,error) {
},
success: function(data) {
var obj = jQuery.parseJSON(data);
//blah blah...
} // End success
}); // End ajax method
});
在服务器端:
class PostComment(BaseHandler):
def post(self):
self.response.headers['Content-Type'] = "application/json"
response = {'errorcode': 0}
self.response.out.write(json.dumps(response))
结果是:点击“提交”按钮后,我的 Firefox 3.6 浏览器提示:有“application/json”文件,你想用什么工具打开它?
我期待 jQuery 捕捉到这个 'json' 数据并处理它。但它没有发生。
我相信我快到了,但出了点问题。