私はXHRを多用するプロジェクトに取り組んでいます。サーバー側が正しく追跡するためには、各Ajaxリクエストに追加する必要のあるデータがありますブラウザで何が起こっているのかajaxSetupがRails/jquery-ujsで動作しない
私は、ajaxリクエストを作成しているすべてのフォーム、リンクなどに追加されたすべてのajaxリクエストのコールバックを処理するために使うxhr_response_handlerという汎用クラスを持っています。 (つまり、ここで「:リモート=>真の」レール内)
$('.xhr_response_handler')
.on('ajax:success', function(event, data, status, xhr) { xhr_success(data); })
.on('ajax:failure', function(xhr, status, error) { xhr_fail(error); });
その後、私は、各要求が使用して送信されるデフォルトのデータを追加しよう:
$.ajaxSetup({
data: {
Foo: <%= @Bar %>
}
});
これは、要素のいくつかのために働きますajax設定はjqueryで直接設定されますが、link_toやform_forなどのrailsメソッドを使って作成されたいくつかの要素に対しては、remote => trueを指定しても機能しません。
奇妙なことは、私はまた
$('.xhr_response_handler').data('params', { Foo2: <%= @Bar2 %> });
を追加した場合、その後のlink_toを使用してAJAXリクエストを生成し、レールにデータを追加するために働くということです。それが奇妙になるのは、突然ajaxSettingsが動作し、ajaxリクエストでは、FooとFoo2の両方をパラメータとして取得するということです。しかし、ajaxSettingsを単独で使用すると、パラメータは一切取得されません。
さらに、追加するデータは、レールform_forメソッドから生成されたajaxリクエストで送信されるフォームデータにシリアル化されません。
ご協力いただければ幸いです。
のRails 3.2.3
ルビー1.9.3p194
のjQuery 1.7.2
解決方法を見つけたことがありますか? –