Jquery Rails 4应用程序有时(不可预测地)使用不同的(错误的)HTTP方法发出请求
我的rails应用程序有时(不可预测地)在发出请求时使用不需要的HTTP方法/动词 到处都是。例如,在登录时,有时会向用户发出适当的POST请求/sign_in,有时会发出GET请求(显然无法登录,只是重新加载页面)。注销也是一样:有时会发出相应的删除请求,有时会发出GET请求(这导致臭名昭著的“找不到id为sign_的用户”)。这也会发生在其他资源和控制器上,而不仅仅是用户资源。因此,这不是在我的注销链接_中指定“delete”方法的问题(我已经这样做了) 这与链接到的和形式为的发生在一个明显的(令人沮丧的)随机方式各地 我认为这是一些jquery的东西,但是我有jQueryRails gem,并且在application.js中需要jquery和jquery_js 关于这种行为的原因有什么想法吗请帮帮我 以下是成功和失败注销的网络日志和终端输出,例如: 成功注销:Jquery Rails 4应用程序有时(不可预测地)使用不同的(错误的)HTTP方法发出请求,jquery,ruby-on-rails,ruby-on-rails-4,routing,routes,Jquery,Ruby On Rails,Ruby On Rails 4,Routing,Routes,我的rails应用程序有时(不可预测地)在发出请求时使用不需要的HTTP方法/动词 到处都是。例如,在登录时,有时会向用户发出适当的POST请求/sign_in,有时会发出GET请求(显然无法登录,只是重新加载页面)。注销也是一样:有时会发出相应的删除请求,有时会发出GET请求(这导致臭名昭著的“找不到id为sign_的用户”)。这也会发生在其他资源和控制器上,而不仅仅是用户资源。因此,这不是在我的注销链接_中指定“delete”方法的问题(我已经这样做了) 这与链接到的和形式为的发生在一个明显
Network log:
Request Method:POST
Status Code:302 Moved Temporarily
content-type:text/html; charset=utf-8
Terminal:
Started DELETE "/users/sign_out" for 191.176.4.78 at 2015-10-31 20:32:56 +0000
Processing by Devise::SessionsController#destroy as HTML
Network log:
Request Method:POST
Status Code:302 Moved Temporarily
Content-Type:application/x-www-form-urlencoded
Terminal:
Started GET "/users/sign_out" for 191.176.4.78 at 2015-10-31
20:36:03 +0000 Processing by UsersController#show as HTML
注销失败:
Network log:
Request Method:POST
Status Code:302 Moved Temporarily
content-type:text/html; charset=utf-8
Terminal:
Started DELETE "/users/sign_out" for 191.176.4.78 at 2015-10-31 20:32:56 +0000
Processing by Devise::SessionsController#destroy as HTML
Network log:
Request Method:POST
Status Code:302 Moved Temporarily
Content-Type:application/x-www-form-urlencoded
Terminal:
Started GET "/users/sign_out" for 191.176.4.78 at 2015-10-31
20:36:03 +0000 Processing by UsersController#show as HTML
这表明,在成功请求时,内容类型为text/html;charset=utf-8并且在失败的尝试中是应用程序/x-www-form-urlencoded。你知道为什么这些类型随机不同吗
以下是我的一些文件:
Gemfile
source 'https://rubygems.org'
gem 'rails', '4.2.2'
gem 'bootstrap-sass', '~> 3.3', '>= 3.3.5.1'
gem 'sass-rails', '5.0.2'
gem 'uglifier', '2.5.3'
gem 'coffee-rails', '4.1.0'
gem 'jquery-rails', '~> 4.0', '>= 4.0.5'
gem 'turbolinks', '2.3.0'
gem 'jbuilder', '2.2.3'
gem 'devise', '~> 3.5', '>= 3.5.2'
gem 'sdoc', '0.4.0', group: :doc
group :development, :test do
gem 'sqlite3', '1.3.9'
gem 'byebug', '3.4.0'
gem 'web-console', '2.0.0.beta3'
gem 'spring', '1.1.3'
end
group :test do
gem 'minitest-reporters', '1.0.5'
gem 'mini_backtrace', '0.1.3'
gem 'guard-minitest', '2.3.1'
end
group :production do
gem 'pg', '0.17.1'
gem 'rails_12factor', '0.0.2'
end
routes.rb
Rails.application.routes.draw do
root 'static_pages#home'
get 'about' => 'static_pages#about'
devise_for :users, controllers: { registrations: "registrations" }
resources :users, :only => [:show, :edit, :update]
resources :competitions, :only => [:index, :show, :create, :destroy]
resources :attempts, :only => [:show, :create, :update, :destroy]
resources :votes
end
application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap
//= require turbolinks
//= require_tree .
登录表单:new.html。(举个例子,因为问题不限于此表单)
我想你应该试试gem“设计可加密”
也许这会解决问题。你能用这个上下文发布你的浏览器网络日志或控制台吗?@Rubyrider好的,我把日志添加到问题中了。他们告诉我,在成功的请求中,内容类型是text/html;charset=utf-8,在失败的尝试中是application/x-www-form-urlencoded。你知道为什么这些类型是随机不同的吗?嗯,这似乎不是一个设计或用户资源相关的问题。它发生在其他资源上。