jquery - JQuery中解析JSON的回调函数

标签 jquery json google-app-engine getjson

我是 JQuery 的新手,也许这是一个 n00b 问题。而且我的英语也不是最好的。

我在我的 Google App Engine 应用程序中编写了一项服务,该服务以 JSON 格式提供数据,工作正常,但我无法使用 JQuery 解析该 JSON 数据:


var url= 'myapp.appspot.com/myservice.json?someparams';
$.getJSON(url, function(json){
    alert("Success parsing JSON");  // I never reached this code 
    ....
});

在阅读了几天的帖子和教程后,我对这个 SlideShare 有了感觉:http://www.slideshare.net/andymckay/cross-domain-webmashups-with-jquery-and-google-app-engine

在阅读幻灯片 23 时,我注意到“callback=?”参数,我尝试了幻灯片 42 中的代码:


class MyJSONHandler(webapp.RequestHandler):
    def get(self):
        ## Retrieve some data from DB or MemCached
        jsonData = json.dumps(data)
        if self.request.get('callback'):
            self.response.out.write('%s(%s)' % (self.request.get('callback'), jsonData))
        else:
            self.response.out.write(jsonData)

在 JQuery 函数中:


$.getJSON(url+'&callback=?', function(json){
    alert("Success parsing JSON");  // Now i'm here !!
    ....
});

我的问题是:

为什么需要“回调”参数才能使其正常工作? '?("MyJSON": [{"a-lot": "of-data"}])' 有什么区别??

谢谢大家

最佳答案

callback参数用于实现JSONP .

jQuery 的 getJSON方法创建一个 <script>指向您提供的 URL 的标记。
该 URL 应返回对 callback 中指定函数的调用。参数,将数据作为参数传递。

与普通的 AJAX 请求不同,JSONP 请求可以跨域进行。

关于jquery - JQuery中解析JSON的回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5043733/

相关文章:

Google App Engine 上的 Django : cannot upload images

javascript - 使用 javascript 显示消息成功 :data id empty

jquery - 内容可编辑光标位置

javascript - 数组值从 JS 丢失到 Controller

jquery - 等待 AJAX 调用 (POST) 完成

JSONPath/QML - 获取字符串数组中的元素

google-app-engine - 为什么 GCP Cloud Build 会出现系统性失败以及如何修复?

javascript - 将 JavaScript 转换为 Python 字节码

javascript - 来自 json 文件的数据,用于 CHAPS 时间线

java - 检索 JSON 数组并将其放入 java 中的数组中?