Elixir Phoenix CSRF令牌不匹配

Elixir Phoenix CSRF令牌不匹配,elixir,csrf,phoenix-framework,Elixir,Csrf,Phoenix Framework,试图让阿贾克斯在凤凰城工作。我通过执行以下操作获得csrf令牌,因此我拥有它: <input type="hidden" id="_csrf_token" name="_csrf_token" value="<%= get_csrf_token() %>"> 两者都不会导致返回任何内容 令牌可通过请求通过密钥为“_csrf_token”的参数或名称为“x-csrf-token”的报头发送 尝试使用以下键设置标题: x-csrf-token 谢谢。花了我几个小时。我的

试图让阿贾克斯在凤凰城工作。我通过执行以下操作获得csrf令牌,因此我拥有它:

<input type="hidden" id="_csrf_token"  name="_csrf_token" value="<%= get_csrf_token() %>">
两者都不会导致返回任何内容

令牌可通过请求通过密钥为“_csrf_token”的参数或名称为“x-csrf-token”的报头发送

尝试使用以下键设置标题:

x-csrf-token

谢谢。花了我几个小时。我的结局是:

<div class="form-group">
  <form id="number" name="number" method="post">
    <meta name="csrf" content="<%= Plug.CSRFProtection.get_csrf_token() %>">
    <input id="_csrf_token" name="_csrf_token"
       type="hidden" value="<%= Plug.CSRFProtection.get_csrf_token() %>">
    <%= text_input :blocks, :num, value: "" %>
    <%= submit "Submit", id: "submit", class: "btn btn-primary" %>
  </form>
</div>

<script>
  var csrf = document.querySelector("meta[name=csrf]").content;

  $.ajax({
    url: "/posts",
    type: "post",
    data: {
      post: { title: post } })
    },
    headers: {
        "X-CSRF-TOKEN": csrf
    },
    dataType: "json",
    success: function (data) {
      console.log(data);
    }
  });
</script>

var csrf=document.querySelector(“meta[name=csrf]”);
$.ajax({
网址:“/posts”,
类型:“post”,
数据:{
帖子:{title:post}})
},
标题:{
“X-CSRF-TOKEN”:CSRF
},
数据类型:“json”,
成功:功能(数据){
控制台日志(数据);
}
});

我不知道X-CRSF-TOKEN头或_csrf_TOKEN参数是必需的,还是两者都必需,所以我将尝试通过反复试验来找出答案。

很高兴这有帮助。
x-csrf-token
<div class="form-group">
  <form id="number" name="number" method="post">
    <meta name="csrf" content="<%= Plug.CSRFProtection.get_csrf_token() %>">
    <input id="_csrf_token" name="_csrf_token"
       type="hidden" value="<%= Plug.CSRFProtection.get_csrf_token() %>">
    <%= text_input :blocks, :num, value: "" %>
    <%= submit "Submit", id: "submit", class: "btn btn-primary" %>
  </form>
</div>

<script>
  var csrf = document.querySelector("meta[name=csrf]").content;

  $.ajax({
    url: "/posts",
    type: "post",
    data: {
      post: { title: post } })
    },
    headers: {
        "X-CSRF-TOKEN": csrf
    },
    dataType: "json",
    success: function (data) {
      console.log(data);
    }
  });
</script>