gpt4 book ai didi

jquery - AngularJS (Blueimp Jquery-file-uploader) 与 Rails + Devise - 已完成 401 未经授权

转载 作者:行者123 更新时间:2023-12-01 04:52:46 24 4
gpt4 key购买 nike

我有一个 AngularJS 应用程序在 Rails 3.2 后端的节点服务器中运行。我在 cookie/HTTP header 中使用 CSRF token (不是 <%= csrf_token %>)。 Angular 可以毫无问题地 GET 和 POST 到 Rails。

我现在正在尝试实现'http://blueimp.github.io/jQuery-File-Upload/angularjs.html '。如果我启用了protect_from_forgery,我会得到(第一条消息是我的看跌期权 - token 不匹配):

VERIFIED_REQUEST 用户:请求:ROyZgMl6CUpbifI45b4URs2iJPRmCtg+mranU8A7xhA= form_authenticity_token f3+AZaCqzTOXTlwadMZIkOGpyqQFcXZ7ITbm87NUA04=警告:无法验证 CSRF token 的真实性在 344 毫秒内完成 401 未经授权

如果我删除protect_from_forgery,我不会收到CSRF警告,但我仍然收到401!一旦代码被部署(部署到 Rails 中的公共(public)文件夹,因此是相同的域),相同的功能就可以完美运行。

我已经尝试了几乎所有我能在 stackoverflow 和其他地方找到的解决方案,现在我正在抓狂。这是我现在的配置:

我在用户登录后在 cookie 中设置 token :

def after_set_user cookies['XSRF-TOKEN'] = form_authenticity_token 如果 protected_against_forgery? 投入(“set_csrf_cookie_for_ng#{form_authenticity_token}”)结束

并根据请求 header 检查 token :

def 验证请求? put("VERIFIED_REQUEST 用户:#{current_user} 请求:#{request.headers['X-XSRF-TOKEN']} form_authenticity_token #{form_authenticity_token}") super || form_authenticity_token == request.headers['X-XSRF-TOKEN']结束

我已经实现了rack_cors gem 来满足 OPTIONS 请求。

我有:

防止伪造before_filter :authenticate_user!

在我的应用程序 Controller 中。

我有:

$.ajaxSetup({
headers: {
'X-XSRF-TOKEN': $cookies['XSRF-TOKEN'],
'X-CSRF-Token': $cookies['XSRF-TOKEN']
}
});

在我的 Angular 范围的顶部。

我有这个:

删除 $http.defaults.headers.common["X-Requested-With"];

在我的 Angular app.js 配置中。

最佳答案

请在上传文件之前添加以下内容(在 jquery.fileupload.js 中)。

$.ajaxSetup({
headers: {
'X-XSRF-TOKEN': $.cookie("XSRF-TOKEN")
}
});

关于jquery - AngularJS (Blueimp Jquery-file-uploader) 与 Rails + Devise - 已完成 401 未经授权,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17749310/

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