然后像这样使用它: $.ajax({ type: "POST", url: ""-6ren">
gpt4 book ai didi

elixir - Phoenix CSRF token 不匹配

转载 作者:行者123 更新时间:2023-12-05 06:41:40 24 4
gpt4 key购买 nike

试图让 Phoenix 运行 ajax。我通过执行以下操作获得了 csrf token ,所以我拥有它:

<input type="hidden" id="_csrf_token"  name="_csrf_token" value="<%= get_csrf_token() %>">

然后像这样使用它:

$.ajax({
type: "POST",
url: "<%= lesson_path @conn, :create %>",
beforeSend: function(xhr)
{
token = $('#_csrf_token').val();
xhr.setRequestHeader('_csrf_token', token );
},
data: data,
success: function(data, textStatus, jqXHR) {
alert(textStatus);
}
});

问题是我得到的 token 不是正确的 token 。查看 google chrome inspector,我收到 403 请求,表示存在无效的 csrf token 。有效的 session token 总是不同于它给我的 token 。得到像这样的东西

知道为什么我会得到一个与它想要的不同的 token 吗?

我也尝试过以下方法:

Plug.Conn.get_session(conn, :csrf_token)
Map.get(conn.req_cookies, "_csrf_token")

两者都不会返回任何结果。

最佳答案

The token may be sent by the request either via the params with key “_csrf_token” or a header with name “x-csrf-token”.

尝试使用键设置标题:

x-csrf-token

关于elixir - Phoenix CSRF token 不匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39863118/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com