2016-12-21 6 views
1
function change_tag(url){ 
    $('.filter_button_confirm').unbind('click').on('click', function(){ 
    ... 
    console.log(url); 

    $.ajax({ 
     url: url, 
     type: 'POST', 
     data: { 
     ... 
     }, 
     beforeSend: function(){ 
     ... 
     } 
    }) 
     .done(function(data){ 
     ... 
     }) 
    }); 
}; 

引数change_tag('/some_url/')で関数を呼び出すと、もちろん動作します。javascript関数は引数なしで動作します。

しかし、change_tag()も完全に機能します。

これは、私が過去に設定したURLからデータを取得します。

console.log(url)は「未定義」と表示されるため、私はそのURLをどのように知っているのか分かりません。

+0

あなたが解決策になりたいですか? 'url'が与えられなければ、コードはエラーを投げるべきでしょうか? –

+1

グローバル変数を使用していないかどうかを確認するために、パラメータ 'url'の名前を変更するとどうなりますか? – Fabien

+1

'url'をグローバルに宣言しましたか? – j08691

答えて

9

パラメータに関数を渡していないので、urlundefinedなので、ajaxコールはurl: undefinedで呼び出されます。これは、URLを提供していない場合と同じで、あなたが現在いるURLに投稿します。詳細情報については

あなたはjQueryのページを確認することができます。http://api.jquery.com/jquery.ajax/

+2

'change_tag()'を呼び出すと、実際に 'url'を' undefined'として 'change_tag'を呼び出します。' null'ではありません。 –

+2

しかし、OPは、コンソールログにURLの「未定義」と表示され、「現在設定されているURLからデータを取り込みます。」と表示されます。 – j08691

+0

@JamesMongerもちろん、悪いです! –

関連する問題