2013-04-11 66 views
0

我正在使用getJSON,但它没有按照我预期的方式工作,WebService返回xml甚至认为具体指定为ResponseFormat = ResponseFormat.JSON。在阅读互联网上的一些文章后,我发现问题是getJSON不会将contentType设置为application/json; charset=utf8,而是让它成为默认值。我通过调用$.ajax并将contentType设置为application/json; charset=utf8来验证它。所以我想看看jQuery-1.9.1.js,看看如何实现getJSON。这是从文件的确切签名...jQuery从哪里得到?

getJSON: function(url, data, callback) { // line 8107 as of 1.9.1.js 
    return jQuery.get(url, data, callback, "json"); 
} 

因此,我进一步寻找jQuery.get如何实施。但是,我非常惊讶,我找不到任何?我看了很多次,但是文件中没有定义get,需要4或更多参数?这怎么可能?如果没有定义,是怎么get,并通过扩展getJSON(也getScript)越来越叫什么名字?任何人都可以请检查并验证这一点?

ps:请不要告诉我我可以使用ajaxSetup等等,还有其他方法可以做到这一点,我知道,但有什么令我费解的想法是,我找不到jQuery.get的定义,所以如何以及从哪里它会被叫到吗?

+0

@gaurav:我知道页面的人!我在说'js'文件中的'get'在哪里?我找不到任何需要4个参数(或更多)的参数。我知道网站的页面有关文档 – Razort4x 2013-04-11 05:59:13

回答

2

ajax.js文件的197行是在getpost函数定义:

jQuery.each([ "get", "post" ], function(i, method) { 
    jQuery[ method ] = function(url, data, callback, type) { 
     // shift arguments if data argument was omitted 
     if (jQuery.isFunction(data)) { 
      type = type || callback; 
      callback = data; 
      data = undefined; 
     } 

     return jQuery.ajax({ 
      url: url, 
      type: method, 
      dataType: type, 
      data: data, 
      success: callback 
     }); 
    }; 
}); 

正如你可以看到他们是简单地调用jQuery.ajax方法。

+0

这就是它!搞定了!谢谢! – Razort4x 2013-04-11 06:02:17

+0

很高兴我能帮到你。 – 2013-04-11 06:02:31