2010-08-05 3 views
0

나는 파일을 다시 레일즈 애플리케이션에 보내는 uploadify 컴포넌트를 가지고있다. 어떤 점에서 주목할만한 문제는 전달 된 일부 특수 데이터 값이 플래시 객체에 의해 변경된다는 것입니다. 클라이언트 측에 swfupload/uploadify의 매개 변수를 Rails 앱에 전달하면 오류가 발생합니다.

나는 레일지고 무엇

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

있습니다

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

토큰 모든에는 '+'기호가없는

가 잘 작동합니다. 플래시가 어떻게 든 문자열을 변경하는 것 같습니다. 어떤 생각을 어떻게 피할 수 있을까요? 나는 이는 cgi를 시도했지만 결과는 특수 문자 인코딩에 encodeURIComponent()를 사용할 필요가 ... '+'제거됩니다,

답변

0

실제 솔루션입니다, 토큰을 두 번. 예를 들어 "encodeURIComponent (encodeURIComponent (token)))"또는 # {u u token}과 같이 입력하십시오.

0

정확히 동일합니다 : 탈출

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

내가 아는 한 JS encodeURIComponent는 Rails의 CGI.escape 또는 "u"헬퍼와 동일합니다. 어느 쪽이든, 그것은 문제를 해결하지 못했습니다. 문제는 uploadify가 플래시 구성 요소에 매개 변수를 전달하기 전에 많은 코딩/인코딩 작업을 수행한다는 것입니다. 실제 해결책은 토큰을 두 번 이스케이프 처리하는 것입니다. 예를 들어 "encodeURIComponent (encodeURIComponent (token)))"또는 # {u u token}과 같이 입력하십시오. – mdrozdziel

관련 문제