我正在研究一個大量使用XHR的項目,並且需要將一些數據附加到每個ajax請求以便服務器端正確保持跟蹤瀏覽器中發生了什麼。ajaxSetup不能使用Rails/jquery-ujs
我有一個稱爲xhr_response_handler的泛型類,比我用來處理所有添加到所有表單,鏈接等的Ajax請求的回調。 (即,其中「:遠程=>真」在導軌)
$('.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配置的,但是這對於使用rails方法創建的某些元素(如link_to和form_for: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
你有沒有找到這個解決方案? –