Ajaxの処理を同じ画面で何度も行うため共通化したいと考え、
関数connectAjaxの引数にAjaxで必要な情報を入れる形の実装をしています。
引数には
type
,
actionPath
,
param
,
beforeSendCallBack
,
_this
,
successCallBack
,
errorCallBack
の6つを指定しました。
JavaScript
1 2function connectAjax(type,actionPath, param, beforeSendCallBack ,_this, successCallBack, errorCallBack) { 3 //* ajax 4 console.log(beforeSendCallBack); 5 $.ajax({ 6 type: type, 7 headers: { 8 'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content') 9 }, 10 dataType: 'json', 11 url: 'http://'+location.host+actionPath, 12 data: param, 13 beforeSend:beforeSendCallBack(_this) 14 }).done(function (data, textStatus, xhr) { 15 if (data.status == 200) { 16 return successCallBack(data , _this); 17 } else { 18 return errorCallBack(data , _this); 19 } 20 }).fail(function(xhr, stat, e){ 21 //* error 22 //console.log(xhr); 23 return 'fail error'; 24 25 }).always(function(data){ 26 // -- 27 }); 28}
第4引数のbeforeSendCallBack の部分は、 beforeSendに何も処理が必要無い場合、nullを入れると、
Uncaught TypeError: beforeSendCallBack is not a function
が表示されています。
この場合、何を入れるのが適切でしょうか。(何もしない関数のようなものを指定したいです)
それとも、書き方がそもそも違っているのでしょうか?
データの型のようなものが違っているのではと考え、
「JavaScript 関数の引数に関数」
などと検索してるのですが、関数の引数の書き方がヒットしてしまい期待通りの結果が得られていません。。
お知恵をお借りできますと幸いです。
よろしくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。