2010-08-05 53 views
0

我有一個uploadify組件,它將文件發送回rails應用程序。我在某個時候注意到的問題是,對於一些特殊值,傳遞的數據會被flash對象改變。從swfupload/uploadify傳遞參數到Rails應用程序 - 破?

在客戶端我有

$(document).ready(function() { 
    $('#photo_image').uploadify({ 
    ... 
    'scriptData': { 
     authenticity_token = 'M++Q3HNclKS7QBEM71lkF/8IkjTwr2JdtqJ4WNXVDro=' 
    ... 
    } 
    }); 
}); 

什麼Rails的越來越:

"authenticity_token"=>"M Q3HNclKS7QBEM71lkF/8IkjTwr2JdtqJ4WNXVDro=" 

當有令牌一切沒有 '+' 號的工作就好了。它看起來像閃光燈以某種方式改變了字符串。任何想法如何逃避它?我試過CGI.escape,但結果是完全一樣的,「+」被剝奪......

回答

0

實際的解決方案是,爲了躲避令牌兩次。因此,例如「encodeURIComponent(encodeURIComponent(token)))」或#{u u token}。

0

你必須使用encodeURIComponent方法()來編碼特殊字符:

$(document).ready(function() { 
    $('#photo_image').uploadify({ 
    ... 
    'scriptData': { 
     authenticity_token = encodeURIComponent('M++Q3HNclKS7QBEM71lkF/8IkjTwr2JdtqJ4WNXVDro=') 
    ... 
    } 
    }); 
}); 
+0

據我所知,JS encodeURIComponent相當於CGI.escape或Rails的「u」助手。無論如何,這並不能解決問題。問題是,在將參數傳遞給閃存組件之前,uploadify會在路上執行大量編碼/編碼。實際的解決方案是,爲了逃避令牌*兩次*。因此,例如「encodeURIComponent(encodeURIComponent(token)))」或#{u u token}。 – mdrozdziel 2010-08-10 06:08:39

相關問題