FacebookのFb.ui実行時にIEだけエラーが発生する時の対処方法

先に結論


APIに渡すパラメータが長すぎると、IEのURL文字長限界たURLをAPI内部で呼び出してしまい、エラーが発生する
対策 : パラメータを適度長さに留める
参考 : マイクロソフト サポート オンライン | URL に使用可能な文字数は最大 2,083 文字

        FB.ui({
            method:      "feed"
          , message:     "ながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージ"
          , name:        "ながーいメッセージ"
          , link:        "http://www.google.co.jp"
          , caption:     "ながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージながーいメッセージ"
        }, function(res){
          if( res && res.post_id ){
          }else{
          }
        });

とかやると、IEでだけ「指定されたリソースは見つかりません」とエラーが出る

理由


Facebook の Fb.ui は、内部で渡されたパラメータを変換して、http://www.facebook.com/fbml/ajax/uiserver.php に渡して呼び出している
Fb.ui に渡したパラメータがでかいと、呼び出しを行う時に、IEのURL文字長限界を超えてしまいエラーが発生する



そんな感じ