2012-09-25 48 views
0

這是一個非常特殊的情況,但我不想爲整個功能重新編寫Javascript。有沒有辦法讓Backbone.js中的每個HTTP請求base 64編碼?它阻止了在Firefox中保存對象,這不幸是我們必須使用的測試環境。謝謝!Backbone.js base 64編碼?

+1

你能給出一些示例代碼或解釋更多關於您遇到的錯誤? – loganfsmyth

+0

當然,基本上當發送請求時,Firefox呈現彈出窗口「這個網頁正在被重定向到一個新的位置,你想重新發送你輸入到新位置的表單數據嗎?」。我已經谷歌搜索,所有的跡象表明禁用所有的附加組件,我試圖做,但似乎沒有幫助。 – user1697757

回答

0

您可以覆蓋Backbone.sync,並保存時做任何你想做的事情。特定行13311332在源代碼中的0.92處理您要發送到服務器的編碼以及如何獲取模型數據。

您可以將Backbone.sync批發從骨幹中複製到您的項目中並在那裏進行修改。

你會需要一個圖書館顯然執行base64編碼,但你可以這樣做:

params.contentType = 'base64'; 
    params.data = base64.encode(JSON.stringify(model.toJSON())); 

(其中顯然base64是你的代碼提供的對象)

+0

感謝您的幫助!我現在在最終的AJAX調用之前重寫同步方法和base 64編碼參數。現在唯一的問題是,它似乎不再呈現數據。 Backbone代碼中是否有可以解碼返回的位置? – user1697757

+0

你會在模型的'parse'方法中做這個。 'parse'的參數是server resp,並且它期望一個包含所有值的javascript對象。如果你需要更多的幫助,你應該問第二個問題。此外,如果這爲你工作,不要忘記接受和upvote :) – tkone