2013-04-11 80 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