代码改变世界

自定义jQuery 跨域请求 callback 函数名

2011-05-19 13:13  我来看看  阅读(1238)  评论(2编辑  收藏  举报

jQuery的getJSON方法在跨域请求时,只要在请求地址后面跟上callback=?就可以实现非常方便,请求时系统会用自动生成的回调函数名来替换问号。

如果想对请求页面做缓存问题就来了,callback参数随着每次请求都会变化。其实jQuery已经帮大家准备好了解决这个问题的办法,换用ajax方法调用即可。

getJSON示例:

1             $.getJSON('http://localhost/writing/tops/5?callback=?',
2                 function (data) {
3                     $.each(data, function (i, item) {
4                         $('#top15').append('<li><a href="list.aspx?writingid=' + item.Id + '" target="_blank" >' + item.Title + '</a></li>');
5                     });
6                 });

 

ajax示例:

 1             $.ajax({
 2                 url: 'http://localhost/writing/tops/3',
 3                 dataType: 'jsonp',
 4                 jsonp: 'callback',
 5                 jsonpCallback: 'fullTops',
 6                 success: function (data) {
 7                     $.each(data, function (i, item) {
 8                         $('#top15').append('<li><a href="/list.aspx?writingid=' + item.Id.toString() + '" target="_blank" >' + item.Title + '</a></li>');
 9                     });
10                 }
11             });