如何从jQuery ajax调用返回并使用字符串数组?

Cug*_*uga 2 javascript python ajax jquery google-app-engine

我正在使用Google App Engine(Python)和jQuery来调用服务器的Ajax.我有一个页面,我想从Ajax调用到服务器加载Javascript中的字符串列表.

我想调用的服务器方法:

class BrowseObjects(webapp.RequestHandler):
    def get(self):
        ids_to_return = get_ids_to_return()
        // TODO: How to return these ids to the invoking ajax call?
        self.response.out.write(ids_to_return)
Run Code Online (Sandbox Code Playgroud)

我希望能够访问返回的ID的HTML页面:

    var strings_from_server = new Array();

    $.ajax({
        type: "GET",
        url: "/get_ids.html",
        success: function(responseText){
            // TODO: How to read these IDS in here?
            strings_from_server = responseText                
        },
            error: function (xhr, ajaxOptions, thrownError){
            alert(xhr.responseText);
        }
    });
Run Code Online (Sandbox Code Playgroud)

我对Ajax的体验是有限的 - 我只使用它们将数据存储到服务器(a-la POST命令),所以我真的不知道如何从服务器获取数据.在此先感谢您的帮助

编辑:我的最终答案:

我已经切换到完整的Ajax调用(以防止跨域请求)并且还处理'错误'回调.我的工作客户端方法如下:

         $.ajax({
            type: "GET",
            dataType: "json",
            url: "/get_ids.html",
            success: function(reponseText){
                strings_from_server = responseText                
            },
            error: function (xhr, ajaxOptions, thrownError){
                    alert(xhr.responseText);
            }
        });
Run Code Online (Sandbox Code Playgroud)

注意我将dataType指定为'json'.
我的最终服务器功能,与sahid的答案,看起来像:

class BrowseObjects(webapp.RequestHandler):
    def get(self):
        ids_to_return = get_ids_to_return()
        # Note: I have to map all my objects as `str` objects
        response_json = simplejson.dumps(map(str, ids_to_return))
        self.response.out.write(response_json)
Run Code Online (Sandbox Code Playgroud)

谢谢大家!

sah*_*hid 6

谷歌AppEngine的SDK由django提供的lib"simplejson".

from django.utils import simplejson

所以你的处理程序可能只是:

from django.utils import simplejson
class BrowseObjects(webapp.RequestHandler):
    def get(self):
       ids_to_return = get_ids_to_return()
       response_json = simplejson.dumps (ids_to_return)
       self.response.out.write(response_json)
Run Code Online (Sandbox Code Playgroud)

有一篇关于ajax/rpc的好文章:http://code.google.com/appengine/articles/rpc.html