在 Javascript 重定向中包含 HTTP 方法
include HTTP method in Javascript redirect?
在我的布局中,我有一个设计登录/注销链接,如下所示:
=if user_signed_in? then link_to "_", destroy_user_session_path, :method => :delete else link_to "_", new_user_session_path, :method => :get end
这将使用 rails 帮助程序来构建链接,并解析为以下 HTML:
<a data-method="get" href="/users/sign_in">_</a>
我正在将所有链接转换为按钮,并且刚刚将 URL 传递给 onClick 函数以重定向浏览器。 在这种情况下,我认为简单的重定向不会解决问题,因为我需要指定 HTTP 方法。 这是正确的方法吗?如果是这样,我该如何告诉Javascript关于HTTP方法的信息?
谢谢
好的,我尝试了XMLHttpRequest,但无法让它工作。 我最终这样做了,这有点黑客,但它有效:
login = function(url) {
$.ajax({
url: url,
type: "GET"
}).done(function(){
window.location.href = url;
});
}
logout = function(url) {
$.ajax({
url: url,
type: "DELETE"
}).done(function(){
window.location.href = "/";
});
大多数浏览器不支持 HTTP 动词的全部范围。因此,Rails使用隐藏变量来指定预期的HTTP方法。
您需要更新<input type="hidden" name="_method" ... />
字段以更改 Rails 在 RESTful 路由期间使用的 HTTP 动词。
相关文章:
- 当数据库中的某些内容发生变化时调用HTTP方法Meteor.js
- 节点如何将文件传递到http.write方法
- 从javaspring方法管理http.get响应
- Angular Provider/JS-如何访问'叔叔方法'从$http().then()
- 当服务器从 http 更改为 https 时,有哪些可能的方法可以解决问题
- 如何在不更改URL的情况下使用HTTP方法POST
- Http 方法差异
- 如何检查我们是否在使用 angularJs $http方法时出错
- 在 Javascript 重定向中包含 HTTP 方法
- JWT 如何绕过某些 API 路由和 http 方法
- 如何构造一个多部分MIME请求并使用AngularJS的$http方法发布它
- Meteor.http 方法在服务器上未定义
- express.js HTTP方法与RESTapi端点
- AngularJs动态更新$http方法的URL
- 如何等待angular http方法完成
- WebView忽略调用PUT/DELETE Http方法的Javascript
- 具有响应和http方法的节点JS变量范围
- 如何为新创建的$resource实例更改$save() http方法?
- 在2.0RC中不能从组件中访问value -resource's $http方法
- 请求正文正在覆盖HTTP方法