2011-02-03 16 views
3

おやすみ!

私はjrery 1.4.4でgetJSON()でプラグインを実行していますが、upradeを1.5にしてもコールバックは呼び出されません。返されたJSONは有効です(私はバリデータでチェックしました)。

はまた、私はjQueryのURLに

を追加し、追加のGETパラメータ?callback=...に気づいた原因であることは、私は、テストケースを作成する方法を考え出したようだ、それはjQueryの1.7(最新版)を検証しているようです

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" lang="ru"> 

<head> 
    <title> 

    </title> 

    <meta http-equiv="content-type" content="text/html; charset=utf8" />  
    <script type="text/javascript" src="js/jquery-1.5.min.js"></script> 
<!--  
    If I uncomment this - it will not work 
    <script type="text/javascript" src="js/jquery.validate.js"></script> 
--> 
</head> 
<body> 
<script type="text/javascript"> 
$(function(){ 
    $.ajaxSetup({ cache: false }); 
    $('#clickme').click(function(){ 
     var params = {userid : 'some-user-id-to-choose-right-temp-FTP-folder-for-the-user'}; 
     $.getJSON('/ajax-page_material-edit-ftp-filelist.php', params, function(data) { 
      console.log(data); 
     }); 
    }); 
}); 
</script> 

<a href="#" id="clickme">Click Me!</a> 

</body> 
</html> 

たぶんプラグインでこのコードが原因である:

// ajax mode: abort 
// usage: $.ajax({ mode: "abort"[, port: "uniqueport"]}); 
// if mode:"abort" is used, the previous request on that port (port can be undefined) is aborted via XMLHttpRequest.abort() 
;(function($) { 
    var ajax = $.ajax; 
    var pendingRequests = {}; 
    $.ajax = function(settings) { 
     // create settings for compatibility with ajaxSetup 
     settings = $.extend(settings, $.extend({}, $.ajaxSettings, settings)); 
     var port = settings.port; 
     if (settings.mode == "abort") { 
      if (pendingRequests[port]) { 
       pendingRequests[port].abort(); 
      } 
      return (pendingRequests[port] = ajax.apply(this, arguments)); 
     } 
     return ajax.apply(this, arguments); 
    }; 
})(jQuery); 
+0

追加URLパラメータ '?callback = ...'は[JSONP](http://en.wikipedia.org/wiki/JSON#JSONP)用です。 –

+0

編集ありがとう! – artvolk

答えて

0

をittedこれは、すでに十分に文書化されてもよいが、念のため、this postの答えは私のためにそれをやりました。基本的に、jQuery Validate 1.8にアップデートすれば、jQuery 1.5.2でも動作します。ありがとう@アレクサンダーカホン!

関連する問題