0

我有一个 uploadify 组件,它将文件发送回 rails 应用程序。我在某些时候注意到的问题是,对于某些传递的特殊值,flash 对象会更改数据。

在客户端我有

 $(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

实际的解决方案是,两次转义令牌。例如“encodeURIComponent(encodeURIComponent(token)))”或#{uu token}。

于 2010-08-24T09:58:11.280 回答