Elixir Phoenix CSRF令牌不匹配
试图让阿贾克斯在凤凰城工作。我通过执行以下操作获得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 谢谢。花了我几个小时。我的
<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>