![](/img/trans.png)
[英]Rails: How to post a file via HTTP as multipart/form-data to Facebook?
[英]HTTP Post Multipart/Form-Data to Rails from Desktop Client
我正在嘗試執行HTTP POST,以從我的Cocoa應用程序在Ruby on Rails應用程序中創建模型的實例。 我同時在編寫客戶端(Cocoa)和服務器(Rails),因此可以在任一位置進行更改。
我在使用“防止偽造”時遇到所需的身份驗證令牌問題
當我可以將HTTP POST的Content-Type設置為text / xml時,一切都很好,因為Rails將其路由到不需要身份驗證令牌的相應xml處理程序。 模型對象已創建,鏈接在一起並正確存儲。 甜。
我現在正在嘗試將文件上傳到服務器。 這需要我使用multipart / form-data Content-type。 該連接失敗,因為我未驗證身份驗證令牌。 因為我沒有發送xml POST,所以我需要進行身份驗證。 但是,我使用的台式機客戶端無法使用Rails中的漂亮表單幫助器。
解決此問題的適當方法是什么?
當我關閉“防止偽造”功能時,我的文件上傳HTTP POST可以正常工作,但這不是理想的解決方案。
謝謝傑夫
解決此問題的一種方法是在控制器中為此特定的上載創建單獨的操作。 然后,您可以在該控制器中聲明以下內容。
skip_before_filter :verify_authenticity_token, :only => :my_special_action
當然,這會將此上傳操作公開給遠程帖子提交。 但是,您只是想這樣做,不是嗎? 遠程提交一些東西。 因此,您無法防止遠程提交並同時使用它。 我有幾種解決方法。
PS另一種方法是,如果您的站點有帳戶,則需要對此操作進行基本身份驗證。
只是一個小解決方案,它可能適用於您的情況:
skip_before_filter :verify_authenticity_token, :only => :get_auth_token
生成令牌
然后通過XML調用發送回您的應用
然后將該令牌用作將來的參考。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.