【发布时间】:2011-08-07 12:34:55
【问题描述】:
我正在尝试从 iOS 上的 Phonegap 应用向 Rails Restful API 发送登录请求。
以下代码适用于 jQuery 1.5,但不适用于 jQuery 1.4.2。
有人知道为什么会这样吗?
$.ajax({
type: 'POST',
url: urlFactory.getLoginURL(),
data: { 'email': emailVal, 'password': passwordVal },
success: onSuccess,
error: onError,
dataType: "json"
});
网络服务器给我以下错误:
Started POST "/login.json" for 127.0.0.1 at Mon Apr 18 00:29:38 +0100 2011
Processing by SessionsController#create as JSON
Parameters: {"password"=>"[FILTERED]", "email"=>"example@gmail.com"}
User Load (0.3ms) SELECT users.* FROM users WHERE (users.id IS NULL) LIMIT 1
Completed in 251ms
ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken):
app/controllers/application_controller.rb:37:in require_authorisation_happened'
Rendered /usr/local/lib/ruby/gems/1.8/gems/actionpack- 3.0.3/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.4ms)
Rendered /usr/local/lib/ruby/gems/1.8/gems/actionpack- 3.0.3/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (14.1ms)
Rendered /usr/local/lib/ruby/gems/1.8/gems/actionpack- 3.0.3/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (23.4ms)
成功后返回如下:
Started POST "/login.json" for 127.0.0.1 at Mon Apr 18 00:16:25 +0100 2011users
Processing by SessionsController#create as JSON
Parameters: {"password"=>"[FILTERED]", "email"=>"example@gmail.com"}
User Load (0.3ms) SELECT.* FROMusersWHERE (users.idIS NULL) LIMIT 1users
User Load (19.4ms) SELECT.* FROMusersWHERE (users.email= 'example@gmail.com') 限制 1
在 306 毫秒内完成 200 次 OK(查看次数:4.6 毫秒 | ActiveRecord:19.7 毫秒)
【问题讨论】:
标签: jquery ruby-on-rails ajax cordova