ariyasacca

カテゴリ一覧

Biz | SF | Software | tDiary | Web | ゲーム | サバティカル | スポーツ | ミステリ | メタル | 健康 | 投資 | 携帯 | 時事ネタ | 死生観 | 資格 | 雑記
2004|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

2011-10-08 (土) [長年日記]

[雑記]jQuery.ajax()でjsonpリクエストする時のcallback関数名を昔の挙動に戻す

jQueryのajax APIではjsonp通信の面倒ごとを全て抽象化してくれていて、使い捨てのcallback関数もタイムスタンプを付与して衝突しないように巧く処理してくれるのですが、最近のバージョン(1.5以降)はやたらと関数名が長い。

ので、callback関数名を昔の挙動に戻したい場合は、jQuery本体を読み込んだ後に、次のようにします。

(function() {
    var jsc = $.now(),
        prefix = "jsonp";

    // jsonpCallbackに昔のcallback関数名生成ルールを渡す
    $.ajaxSetup({
        "jsonp": "callback",
        "jsonpCallback": function() {
            return (prefix + jsc++);
        }
    });
})();

なんで戻したかったかというと、パラメータcallbackに指定する文字列が長過ぎるとリクエストを弾くWeb APIがあったから。

クライアント側からしたら「そんなエラー処理すんなよ」って話でもあるのですが、ブラウザやサーバの実装にHTTP GETメソッドのURI長さ制限が存在する以上、Web API側がcallbackにも長さの制限を設ける設計には、一定の妥当性はあります。


最近のツッコミ

  1. ともお (2024-05-29(水)20:59)「真上からの恐怖🫨」
  2. いちごみるく (2024-05-29(水)20:59)「🩸」
  3. レモン (2024-05-29(水)20:59)「レモン」

参号館  の中の  日記(ariyasacca)

トップ «前の日記(2011-10-07 (金)) 最新 次の日記(2011-10-10 (月))» 編集