function copy_memo(){ <%= remote_function(:url => {:action => "copy_memo"}, :complete => "$('memo_area').value = request.responseText", :with =>"'year='+$('year').value+ '&month='+$('month').value+ '&day='+$('day').value+ '&user='+$('user').value") %> } <input type="button" name="button" value="<%=l('copy_memo')%>" onclick="copy_memo()" >
上のremote_functionで、下記を生成してくれます。
function copy_memo(){ new Ajax.Request('/xxx/copy_memo', {asynchronous:true, evalScripts:true, onComplete:function(request){$('memo_area').value = request.responseText}, parameters:'year='+$('year').value+ '&month='+$('month').value+ '&day='+$('day').value+ '&user='+$('user').value + '&authenticity_token=' + encodeURIComponent('e2uxmpaqqD3l+bMWYOm3r+Yl7KKJuy4WbyNea1Wsc1E=')}) }
Rails2.3.11(あたり?)からCSRF対応で、authenticity_token が自動的にパラメータに追加されるようになったそうです。
remote_functionを使ってない場合は自分で実装を追加する必要があるのでremote_functionを利用するのが便利ですね。
最初は、remote_functionを使わずに実装していたのでログイン情報が消えてハマりました…。
ちなみにパラメータを渡すときは上記のように:with を使います。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。