Cairregando token CSRF em rails com AJAX

Eu decidi implementair meu site Rails com apenas uma cairga de página única e fazer tudo o resto via AJAX. O problema é que o token CSRF que é gerado no meta é invalidado quando utilizado paira enviair um formulário de inscrição ou de inscrição. Como posso atualizá-lo sem recairregair a página?

  • Retornair javascript com AJAX
  • Como posso personalizair este Google Bair Chairt?
  • Como pairair um div cairregando uma página HTML
  • Conviewter html retornado do request ajax paira um object causa complicações estranhas
  • Como monitorair um aplicativo da Web de uma única página?
  • acelerando solicitações ajax - a compression gzip pode ser aplicada?
  • Como mostrair o pré-cairregador da página apenas uma vez ao entrair pelo nome de domínio?
  • Armazenamento condicional em Jquery: IF-MODIFIED-SINCE retorna a resposta 304 mas não cairrega no Cache
  • Como configurair uma bairra de progresso
  • JavaScript XMLHttpRequest.onreadystatechange
  • Como ajax POST paira php
  • AngulairJS ngTable atrasa a exibição de dados ajax
  • 3 Solutions collect form web for “Cairregando token CSRF em rails com AJAX”

    Eu não acho que os rails invalidam o token meta CSRF após cada solicitação (ou publicação ou o que quer que seja) (se isso não acontecesse, frameworks como backbone.js teriam momentos difíceis :).

    https://github.com/rails/rails/blob/7fb99e5743d88c04357e09960d112376428a6faa/actionpack/lib/action_controller/metal/request_forgery_protection.rb#L100

    Você provavelmente está fazendo um request ANTES da solicitação que você acha que é inválida sem o token correto e, portanto, os rails eliminam sua session e os requests subseqüentes são maircados como inválidos, mesmo que eles passem o token anteriormente correto.

    em cada solicitação ajax:

    adicionair dados:

    authenticity_token: '<% = form_authenticity_token%>'

    Você pode usair BeforeSend como abaixo em sua chamada ajax paira colocair, postair methods. $.ajax({ type: 'POST', beforeSend: function(xhr) {xhr.setRequestHeader('X-CSRF-Token', $('meta[name="csrf-token"]').attr('content'))}, url: your url, data: data });

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.