0

ファイルをレールアプリケーションに送り返すuploadifyコンポーネントがあります。ある時点で気付いた問題は、渡されたいくつかの特別な値のデータがフラッシュ オブジェクトによって変更されることです。

私が持っているクライアント側で

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

Railsが得ているもの:

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

トークンに「+」記号がない場合、すべて正常に機能します。フラッシュが何らかの形でストリングを変更しているように見えます。それを回避する方法はありますか?CGI.escape を試してみましたが、結果はまったく同じで、「+」が取り除かれています...

4

2 に答える 2

0

特殊文字をエンコードするには、encodeURIComponent()を使用する必要があります。

$(document).ready(function() {
   $('#photo_image').uploadify({
    ...
    'scriptData': {
       authenticity_token = encodeURIComponent('M++Q3HNclKS7QBEM71lkF/8IkjTwr2JdtqJ4WNXVDro=')
     ...
     }
   });
 });
于 2010-08-09T21:19:24.167 に答える
0

実際の解決策は、トークンを 2 回エスケープすることです。たとえば、「encodeURIComponent(encodeURIComponent(token)))」または #{uu token} です。

于 2010-08-24T09:58:11.280 に答える