禁用 JavaScript 时链接和表单的解决方案是什么?
what is the solution for links and forms when javascript is disabled
当 Rails 和 JavaScript 被禁用时,我有 3 个问题
1)第一种情况是link_to
不起作用的方法,如果它通常应该去销毁操作,它会得到显示页面,解决方案就是我们所说的"优雅降级",但我想要的是防止链接工作如果JS被禁用。有什么方法可以做到这一点?
2)第二个问题是关于注销功能(使用销毁操作),所以我有一个注销链接:
link_to "logout", logout_path, method: "delete"
在我的路由文件中,我有以下行:
match "/logout", to: "sessions#destroy", via: 'delete'
如果我禁用JavaScript,则会出现错误:
No route matches [GET] "/signout"
是否也可以通过以下方式添加:"获取"?? 像这样添加到这条路线:
match "/logout", to: "sessions#destroy", via: ['delete', 'get']
3)最后一个问题是当我有一个带有提交按钮的表单时,如果JavaScript被禁用,我会收到错误:
ActionController::InvalidAuthenticityToken in RelationshipsController#destroy
这意味着在生产中,我得到页面"出了点问题..."这里的解决方案是什么?
当你使用link_to/button_to"method: delete"时,它会生成这样的内容。
<form action="/something" class="button_to" method="post">
<div>
<input name="_method" type="hidden" value="delete">
<input class="btn btn-danger" data-confirm="Are you sure?" type="submit" value="Delete">
<input name="authenticity_token" type="hidden" value="gP+sFWt9Y3r0m8U4gqqoax+tnKwIIalHVxhkC2IyoHY=">
</div>
</form>
jquery-ujs 在看到_method删除时劫持了点击。它不使用 GET/POST,它使用 DELETE。
(关于#3:请注意从link_to/button_to生成的authenticity_token。我知道的还不够详细)
TL:DR;开发人员使用 DELETE 调用来"注销"用户并不常见。只需使用 GET 即可让您的生活更轻松。
相关文章:
- 当我想发布一个变量但有 1 个 js 时,ajax post 的解决方案是什么
- 在IE8和其他带有javascript的浏览器中获取正文类的标准解决方案是什么
- 为静态类型检查注释javascript的好解决方案是什么
- 将复杂内容(想想整个网页树)从一个 Web 应用程序提供给另一个网站的最佳可重用解决方案是什么?
- 在 Javascript 中模拟“IN”运算符以简化冗余逻辑 OR 的最佳解决方案是什么?
- 窗户的替代方案是什么.IE 中的网址
- 禁用 JavaScript 时链接和表单的解决方案是什么?
- 使用jQuery在iPhone等移动设备上禁用悬停的最佳和完美的解决方案是什么
- 使用javascript的web界面的最佳解决方案是什么?
- 检查数据集是否被更改(添加/编辑,删除记录)的最佳解决方案是什么?
- 在SPA中创建干净的id空间的常见解决方案是什么?
- 更改c# Dto类属性的常见解决方案是什么? '第一封信给
- 在页面上打印元素内容的跨浏览器解决方案是什么?
- 制作多语言网站、复制粘贴页面的最佳解决方案是什么?脚本
- 如果节点模块' body-parser '不安全,下一个解决方案是什么
- 为react native应用下载和访问额外资源的当前解决方案是什么?
- 文件输入的onchange的解决方案是什么?
- Iframe滚动问题.解决方案是什么
- 在不需要大量编码的情况下对JSP应用程序进行分页的最有效解决方案是什么?
- 发送ajax请求和防止数据操作的最安全解决方案是什么?