Rails環境でjavascriptでPostするコード
概要
rails上でjavascriptを使用して、コントローラーにPOSTしたい時のコード、どこかで使うかもしれないのでメモ
<a href "#" onclick="transfer('https://yahoo.co.jp')">Yahoo</a>
<script>
function transfer(url){
var xhr = new XMLHttpRequest();
var token = document.getElementsByName('csrf-token').item(0).content;
xhr.open('POST', '/transfers');
xhr.setRequestHeader('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');
xhr.setRequestHeader('X-CSRF-Token', token);
xhr.send(url);
}
</script>
/transfers
にPOSTしますね
jsonを送信する場合
<script>
function transfer(url){
var xhr = new XMLHttpRequest();
var token = document.getElementsByName('csrf-token').item(0).content;
var obj = {
"url": url,
};
var json = JSON.stringify(obj)
xhr.open('POST', '/transfers', false);
xhr.setRequestHeader('Content-Type', 'application/json');
xhr.setRequestHeader('X-CSRF-Token', token);
xhr.send(json);
if (xhr.status === 200) {
}
}
</script>
これでhttps://yahoo.co.jp?aa=bb&bb=c
をcontrollerに送りつけることができます。
感想
今回はメモみたいな内容でしたので、少し味気なかったかもしれませんね