我是 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/