【发布时间】:2013-05-05 15:42:13
【问题描述】:
我在让 AJAX 正确发布 JSON 时遇到问题。该应用程序旨在托管在 Google App Engine 上。但我所拥有的并没有发布数据。
Python
mainPage = """
<html>
html is included in my python file.
</html>
"""
class JSONInterface(webapp2.RequestHandler):
def post(self):
name =self.request.get('name')
nickname =self.request.get('nickname')
callback = self.request.get('callback')
if len(name) > 0 and len(nickname) >0:
newmsg = Entry(name=name, nickname=nickname)
newmsg.put()
if len(name)>0:
self.response.out.write(getJSONMessages(callback))
else:
self.response.out.write("something didnt work")
def get(self):
callback = self.request.get('callback')
self.response.out.write(getJSONMessages(callback))
此处理程序旨在处理来自 Web 应用程序的 Ajax 调用。我不确定是否需要将 javascript 与我的主页相关联才能这样做,因为我还没有通过搜索找到关于它的信息。
Javascript
$(document).ready( function() {
$("#post").bind('click', function(event){
var name = $("#name").val();
var nickname = $("#nickname").val();
postData = {name: name, nickname: nickname, callback: "newMessage"};
$.ajax({
type: "POST",
url: "http://localhost:27080/json",
data: postData,
dataType: "json",
done: function() {
// Clear out the posted message...
$("#nickname").val('');
},
fail: function(e) {
confirm("Error", e.message);
}
});
// prevent default posting of form (since we're making an Ajax call)...
event.preventDefault();
});
帖子的Javascript
有人可以建议我如何解决我遇到的问题。感谢您的时间和帮助。
【问题讨论】:
-
我可能会尝试添加 contentType: "application/json",
-
我的主页处理程序上有。 def get(self): self.response.headers['Content-Type'] = 'text/html' self.response.out.write(mainPage) 只是用来返回页面。
-
python 文件中的路由处理程序配置正确吗?另外,您使用的是 jQuery 吗?前导 $ 被省略。应该是 $(document).ready()。但请确保您的处理程序指向 ('/json', JSONInterface)。
-
是的,我使用的是 Jquery,我在复制和粘贴时出错了。 $ 是其中的一部分。感谢您在我的帖子中指出这一点。
-
我认为是复制/粘贴问题:)
标签: javascript python ajax google-app-engine