リア充爆発日記

You don't even know what ria-ju really is.

backbone.jsでfetch()でもsave()でもとにかくエラーハンドラが発火してしまう。

ハマった。いやぁ、ハマった。

サーバサイドはきっちり200系でレスポンス返してるのに、クライアントサイドでエラーハンドラが発火するという現象に悩まされていた。

2時間以上、デバッグトライアンドエラーをしてみたけど、まったくわからなかった。けど、風呂に入ってからググったらココがヒットした。
http://stackoverflow.com/questions/7040039/model-fetch-always-going-to-error-callback

dataTypeに'json' を指定するだけだった。
これがないだけで、イケてない扱いされて、しかも原因のヒントがどこにもなかったっていう。

具体的にはbackbone.jsでajaxのリクエスト先を別のHostにする方法と同じように

    $.ajaxPrefilter( (options, originalOptions, jqXHR) ->
      options.url = $('meta[property="api-url"]').attr('content') + options.url;
      options.dataType = 'json'
    )

こんな感じで。