向JSON回调附加额外请求

时间:2011-02-04 19:58:19

标签: javascript jquery json jsonp

我的问题

我正在尝试使用jQuery从远程站点加载JSON编码数据,但是当jQuery尝试调用此URL时,它会将正确的函数附加到callback =?所以它就像callback = jsonp1256856769,但它也将_ = 1256856769添加到网址。因此,网址最终会像http://www.example.com/link/to/file.php?format=json&lang=en&callback=jsonp1256856769&_=1256856769

现在问题是我使用的那个文件调用它无法解释_ = 1234234而我无法更改它所以我必须修复jQuery问题

我的问题

如何让jQuery不将_ =附加到它调用的URL

我试图弄清楚我的问题

  • 从页面中删除了所有其他JavaScript库
  • 尝试了几个不同版本的jQuery

我的代码

function getData(){
    url = "http://www.example.com/link/to/file.php";
    url += "?format=json&lang=en";
    $.getJSON(url+"&callback=?",function(data){formatData(data);});
}

*上面是我目前正在使用的JavaScript代码片段

*请注意我使用的域名不是example.com

1 个答案:

答案 0 :(得分:3)

更新:添加了代码

_=部分在那里,因为JSONP请求默认为cache: false。您可以设置cache: true,这会使_=部分消失,但浏览器会缓存请求。

function getData() {
    url = "http://www.example.com/link/to/file.php";
    url += "?format=json&lang=en";
    $.ajax({
        'url': url,
        'type': 'GET',
        'dataType': 'jsonp', // this adds &callback=? by design
        'cache': true,
        'success': function(data) { formatData(data); }
    });
}