2011-02-16 19 views
0

成功コールバックの設定にアクセスするにはどうしますか?jQuery ajaxコール

$('.chartsRefresher').change(
     function(){ 
      $.ajax({ 
       url: "/CampaignReportPostHandler.jsp", 
       data:({ 
        queryPage:$("ul.tabs li.active a").attr("href") 
       }), 
       success:function(d) 
       { 
        alert(settings); 
        var dataTest = d.substring(d.indexOf('(')); 
        eval(chartRenderer+"(eval(dataTest))"); 
       } 
      }); 
      return true; 
     } 
     ); 

私はajax呼び出しが行われたときにqueryPageが何であったかを知りたいですか?

答えて

1

最初にあなたのデータを定義します。

$('.chartsRefresher').change(
     function(){ 
      var data = { 
       queryPage:$("ul.tabs li.active a").attr("href") 
      }; 
      $.ajax({ 
       url: "/CampaignReportPostHandler.jsp", 
       data: data, 
       success:function(d) 
       { 
        alert(data.queryPage); 
        var dataTest = d.substring(d.indexOf('(')); 
        eval(chartRenderer+"(eval(dataTest))"); 
       } 
      }); 
      return true; 
     } 
     ); 

と述べたように、可能な場合はevalを避けます。

1

varでそれらを宣言します。

$('.chartsRefresher').change(function() { 
    var ajaxOpts= { 
     url: "/CampaignReportPostHandler.jsp", 
     data: { /* remove the parentheses around this object */ 
      queryPage: $("ul.tabs li.active a").attr("href") 
     }, 
     success: function(d) { 
      var queryPage = ajaxOpts.data.queryPage; 
      var dataTest = d.substring(d.indexOf('(')); 
      eval(chartRenderer + "(eval(dataTest))"); 
     } 
    }; 

    $.ajax(ajaxOpts); 
    return true; 
}); 

サイド質問:なぜあなたはevalのを使用していますか?

+0

私はfusionchartsによって使用されるサーバーからjsonデータを送信しています。それが動作する唯一の方法は、それを評価することでした。変更を提案したら、外部評価を取り除きます。 – arinte

+0

@arinte:**このようなevalを使用する理由はありません** ** jQueryは自動的にJSONを解析します。そうでない場合、たとえば応答のMIMEタイプが 'application/json'ではないため、もう1つのajaxオプション、' dataType: 'json''を指定するだけです。 http://api.jquery.com/jQuery.ajaxか、単に '' $ .getJSON() '](http://api.jquery.com/jQuery.getJSON/)を使用してください。 –

+0

はい、同意しますが、私が現在住んでいるこの愚かな開発環境は、すべての要求の先頭にいくつかのデータを追加します。そのため、dstrコール – arinte

関連する問題