jquery - 经过身份验证的用户从 jQuery 向 Rails API 发出 AJAX 请求

标签 jquery ruby-on-rails ajax authentication devise

我正在构建一个 Rails 应用程序,并使用 Devise 进行身份验证。 当用户登录时,我需要对 Rails 进行 AJAX 调用,并以 JSON 形式获取属于当前用户的数据。另外,我不希望未经身份验证的用户和其他登录用户访问当前用户的资源。

我使用 jQuery 的 $.getJSON() 通过简单地指定链接地址来发出 AJAX 请求,如下所示:

 $.getJSON('http://localhost:3000/users/1/photos', function(data) { console.log(data); });

到目前为止,身份验证的工作方式似乎与 HTTP 请求的工作方式相同,因此用户只能通过 AJAX 访问自己的数据。

我对 AJAX 没有太多经验,而且我根本不明白为什么它有效。当我进行 AJAX 调用时,Rails 应用程序从哪里知道我已登录?我认为我必须创建一个额外的身份验证 token 并使用它进行身份验证或在执行 AJAX 调用时设置设计 session cookie。

稍后编辑:当我进行 AJAX 调用时,我的 Rails 应用程序从哪里知道我已登录?

最佳答案

AJAX 请求 (XMLHttpRequest) 将包含与同一域的标准 HTTP 请求相同的 header 。至于从 header 中读取 cookie、查找 session 信息以及授权请求,行为是相同的。

关于jquery - 经过身份验证的用户从 jQuery 向 Rails API 发出 AJAX 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30292525/

相关文章:

java - 使用jquery和ajax时html中的表单操作?

c# - 如何将 Signalr 扩展到大量用户

javascript - 如何使用 jquery 更改类

javascript - 获取 ajax 函数的值(非异步)

ruby-on-rails - rails : include index with fields_for form helper

javascript - Ajax 成功后,重新加载部分页面,而不是整个页面。拉维尔

javascript - 从数据列表中动态删除项目

javascript - 如何评估 JavaScript 对象是否未定义

ruby-on-rails - 访问当前页面上的集合对象w will_paginate

ruby-on-rails - :name:Symbol 的未定义方法 `merge'