使用不正确的凭据登录时,Jquery Mobile Rails & Devise 加载页面时出错

2024-04-30

我正在掌握 Rails 3 的窍门,并制作了几个可用的应用程序。我是在 Rails 中使用 javascript 或 jquery 的新手。我有一个使用 Rails 3.2、devise 和 cancan 的工作应用程序。然后我将其转换为使用 Jquery Mobile。整个应用程序都在使用它,我不区分桌面和移动设备。

Problem:

总的来说,除了一些小问题之外,一切都运行良好。一是我可以使用正确的凭据成功登录,并且一旦登录,闪存将显示我已登录。如果我使用不正确的凭据登录,它只会显示Error loading page(没有像平常那样的闪现消息说Invalid email or password)。据我所知,所有其他 Flash 消息都正确显示(由 JQM 格式化为黄色)。

到目前为止我所做的:

到处搜索类似的问题,但没有喜悦(最相似的是重定向或页面未找到错误)。 在 Firebug 中显示401 Unauthorized - Response - Invalid email or password.

我已经注释掉了所有 cancan 的东西(它在没有 JQM 的情况下都可以工作) - 这没有什么区别 - 这并不是说它正在重定向到其他没有权限的地方等。

我不太熟悉 javascript/ajax 如何改变正常的 Rails 行为,但任何指针将不胜感激。


简答

解决这个问题最快的方法是使用rails g devise:views将设计视图复制到您的项目中,以便您可以编辑它们。然后您需要将以下内容添加到form_for紧随其后的行:url in the new.html会话控制器的模板:

:html => {:data => {:ajax => 'false'}}

这将告诉 jQuery Mobile 该表单不应被劫持并制成 ajax 请求。

原因

jQuery Mobile 将劫持所有表单和链接,将其转换为 ajax 请求。除非你设置了一个respond_to控制器中的块 Rails 仍将呈现您设置的任何模板。这通常不是问题,因为 jQM 只是解析出必要的页面 div。然而,Devise 的控制器will根据请求做出不同的响应,并且您收到 jQM 不知道如何处理的 ajax 响应。这就是为什么上面最简单的解决方案是让 jQM 不将登录表单转换为 ajax 请求。其他潜在的解决方案包括修改会话控制器或添加默认的 ajax 成功处理程序代码来检查非状态 200 返回响应并适当处理它们。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用不正确的凭据登录时,Jquery Mobile Rails & Devise 加载页面时出错 的相关文章

  • 使 Bootstrap Popover 在悬停而不是单击时出现/消失

    我正在使用 Bootstrap 构建一个网站Popover http twitter github com bootstrap javascript html popovers我不知道如何使弹出窗口出现在悬停而不是单击时 我想做的就是当有人
  • 如何使用 jQuery 单击特定链接时打开引导导航选项卡的特定选项卡?

    我是 jquery 和 bootstrap 的新手 所以请考虑我的错误 我已经创建了一个用于登录和注册的 bootstrap 模式 它包含两个导航选项卡 称为登录和注册 我有两个按钮可以弹出相同的模态窗口 但在模态窗口内显示不同的选项卡 每
  • 使用jquery调用AS3外部接口

    我正在使用ExternalInterface 调用嵌入在html 页面中的Flash 应用程序 以下代码工作正常 我正在使用按钮进行测试 document ready function button click function var a
  • 如果选中复选框则显示 div

    我正在尝试构建类似 WordPress 选项的东西 用于在创建文章时切换字段可见性 我所构建的依赖于 click函数使用相应的字段名称切换父项 我想知道如果选中该复选框 执行此操作的最佳方法是什么 因为如果您选中一个框并重新加载页面 因为它
  • Jquery 以编程方式更改

    文本

    编辑 解决方案是将其添加到个人资料页面而不是性别页面 profile live pageinit function event p pTest text localStorage getItem gender 我在列表视图中有一个带有一些文
  • 将一个文本框的值分配给另一个文本框

    看过类似问题的答案 但对于我的一生 我无法弄清楚我做错了什么 我有两个文本框和一个按钮 当文本添加到第一个文本框并按下按钮时 我想将第一个文本框的值 文本应用到第二个文本框
  • init 后用 JSON 填充 select2 不起作用

    我正在尝试使用 JSON 数组填充 select2 元素 但我无法得到它 我有下一个数组 data id Foo text Foo id Bar text Bar 我初始化 select2 如下 selectElement select2
  • jQuery ajax 上的 Qunit 单元测试错误

    我已经为 ajax 起诉 Qunit 编写了单元测试 但出现了类似的错误 Error assertion outside test context was success http test loc assets test widget a
  • 如何防止 iframe 中的链接在新选项卡中打开

    我为我制作的基于网络的操作系统制作了一个基于网络的小型网络浏览器 我注意到在某些网站中 它们有喜欢在新选项卡中打开的链接 有没有办法可以防止这种情况并在 iframe 中打开链接 这是我的整个浏览器的代码 以防万一
  • Jquery,在表中设置td的值?

    我创建动态表 tr and td 标签 td 标签之一获取 id detailInfo 我在某个按钮上有一个 onclick 函数 我想在按下按钮后在 td detailInfo 中设置一些值 那么如何设置 id 为 detailInfo
  • 获取自定义属性的值

    我有两个单选按钮 我希望能够获取选中的单选按钮的自定义属性 xml value 的值 我尝试过以下脚本 var userType input name ctrl CustomerType checked this attr xmlvalue
  • JQGrid - 在编辑表单中显示附加列

    我有一个 JQGrid 表 有 30 多个列 我认为这些列的内联编辑对用户来说并不友好 所以我想在网格模式下显示几列 并仅当用户打开该行的编辑表单时显示所有列 这可能吗 在教程中找不到这个 先感谢您 如果你想show并且不要编辑列 然后使用
  • jquery 调整窗口大小以适合内容

    我有一个简单的弹出窗口显示300x300px图片 我将窗口的大小设置为350x350px 但根据浏览器的不同 我要么得到滚动条 要么得到额外的空白 是否有一些 jQuery 函数可以调整浏览器窗口的大小以适应内容 而无需任何滚动条或空白 无
  • 根据复选框和数据元素隐藏/显示表格行

    我想隐藏表中的行 因为我选中了复选框并且该数据元素在表中不正确 另一个实验 我还可以使用数据元素进行排序并按下拉列表排序 查看 tr 标签 价格 名称 评级 吗 div class filter list div
  • ajaxStop() 不触发

    这是不起作用的代码 document ajaxStop function this unbind ajaxStop prevent running again when other calls finish Display everythi
  • javascript jquery 使用脚本更改脚本的src

    我有一个 JavaScript 脚本 它有一个 src 元素 这个 src 是一个 url 我想使用 javascript 更改它 一次更改为其他内容 或者动态创建它 使用 javascript jquery 动态创建脚本元素的最佳方法是什
  • 如何使用 javascript/jquery/AJAX 调用 Django REST API?

    我想使用 Javascript jQuery AJAX 在前端调用 Django Rest API 请求方法是 POST 但当我看到 API 调用它的调用 OPTIONS 方法时 所以 我开始了解access control allow o
  • 如何更改自动完成中的结果过滤器?

    我不想进行字面匹配 而是想通过正则表达式选择结果 我可以覆盖自动完成的默认行为来完成此任务还是需要替代结构 有一个内置的方法可以做到这一点 只需提供一个函数source http jqueryui com demos autocomplet
  • RoR - Rails 中的大文件上传

    我有一个 Rails Web 应用程序 允许用户上传视频 视频存储在 NFS 安装的目录中 当前的设置适用于较小的文件 但我也需要支持大文件上传 最多 4GB 当我尝试上传 4GB 文件时 它最终会发生 但从用户体验的角度来看很糟糕 上传开
  • 将 HTML 表格导出到 Excel

    我在 ASP NET MVC 视图页面上有 HTML 表 现在我必须将该表导出到 Excel 1 我使用部分视图 Inquiries ascx 来显示数据库中的表数据 使用LINQ to Entity 2 我还使用了 UITableFilt

随机推荐