jquery.ajax post请求从app引擎服务器获取数据

2 人关注

我为我的问题感到抱歉。

你好,我如何使用jQuery.ajax从appengine服务器的Python端获取数据?我知道如何使用ajax和适当的处理程序向服务器发送数据,但我想知道是否有人能告诉我从服务器上获取数值的ajax请求是什么样子的。(假设我想从数据存储中获取一个数字并在javascript中使用它)。

client sending to server (using jquery)

客户端的javascript。

//jQuery and ajax function loaded.
<script type="text/javascript">
    var data = {"salary":500};
    $.ajax({
    type: "POST",
    url: "/resultshandler",
    data: data
</script>

server-side:

class ResultsHandler(webapp.RequestHandler):
    def get(self):
        n = cgi.escape(self.request.get('salary'))
        e = Engineer(salary = n)
        e.put()

在def main()下:我有一个处理程序('/put_in_datastore', ResultsHandler)。

同样,从Python端检索数字的类似代码是什么?如果有人能同时提供处理程序代码和javascript代码,那就太好了......

1 个评论
你到底为什么要在将数值存储到数据存储中之前用 cgi 来转义?
jquery
python
ajax
google-app-engine
ejang
ejang
发布于 2011-08-25
1 个回答
Steven Kampen
Steven Kampen
发布于 2011-08-25
已采纳
0 人赞同

无论数据以何种方式流动,其机制都是完全相同的。使用ajax调用的 success 参数,在请求成功完成后对数据进行操作。这通常被称为 回调 . Other 回调s exist. See http://api.jquery.com/jQuery.ajax/ 以获得完整的信息。

$.ajax({
  url: "/resultshandler",
  type: 'POST',
  data: data,
  success: function(data, status){
    //check status
    //do something with data

在Python端,你用self.response.write.out(output)返回数据。见下面的例子。

class ResultsHandler(webapp.RequestHandler):
    def post(self):
        k = db.Key.from_path('Engineer', the_engineer_id) #will be an integer
        e = db.get(k)
        output = {'salary': e.salary}
        output = json.dumps(output) #json encoding
        self.response.write.out(output)