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に送りつけることができます。

感想

今回はメモみたいな内容でしたので、少し味気なかったかもしれませんね

Nakano
Nakano
Back-end engineer

AWS,Rails,UE4,vue.js,hugo,その他なんでもやりたい