Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails ionic应用程序可用于服务器,但不适用于ios emulator_Ruby On Rails_Ionic Framework_Cors_Ios Simulator_Rails Api - Fatal编程技术网

Ruby on rails ionic应用程序可用于服务器,但不适用于ios emulator

Ruby on rails ionic应用程序可用于服务器,但不适用于ios emulator,ruby-on-rails,ionic-framework,cors,ios-simulator,rails-api,Ruby On Rails,Ionic Framework,Cors,Ios Simulator,Rails Api,我有一个ionic应用程序,它可以完全与ionic serve配合使用,但不能始终与ionic emulate或ionic emulate-lc配合使用。应用程序将同时加载这两个文件。第一页是登录屏幕的链接。该链接在两种情况下都起作用,并进入登录屏幕。使用爱奥尼亚服务,用户可以成功登录。使用爱奥尼亚仿真,按“登录”将生成以下服务器日志(Rails,而非爱奥尼亚): 正如您在上面的代码中所看到的,服务器正在发回一个200响应,因此这一定是客户端/离子/模拟器的问题。事实上,它还可以与爱奥尼亚服务公

我有一个ionic应用程序,它可以完全与
ionic serve
配合使用,但不能始终与
ionic emulate
ionic emulate-lc
配合使用。应用程序将同时加载这两个文件。第一页是登录屏幕的链接。该链接在两种情况下都起作用,并进入登录屏幕。使用
爱奥尼亚服务
,用户可以成功登录。使用
爱奥尼亚仿真
,按“登录”将生成以下服务器日志(Rails,而非爱奥尼亚):

正如您在上面的代码中所看到的,服务器正在发回一个200响应,因此这一定是客户端/离子/模拟器的问题。事实上,它还可以与爱奥尼亚服务公司合作,这也让我相信它是客户端而不是服务器端。如果我运行
离子仿真-lc
,我将在服务器日志中获得以下内容:

Started OPTIONS "/api/auth/sign_in" for ::1 at 2016-04-18 10:42:14 -0400

ActionController::RoutingError (No route matches [OPTIONS] "/api/auth/sign_in"):
  actionpack (4.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
  actionpack (4.2.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
  railties (4.2.6) lib/rails/rack/logger.rb:38:in `call_app'
  railties (4.2.6) lib/rails/rack/logger.rb:20:in `block in call'
  activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'
  activesupport (4.2.6) lib/active_support/tagged_logging.rb:26:in `tagged'
  activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `tagged'
  railties (4.2.6) lib/rails/rack/logger.rb:20:in `call'
  actionpack (4.2.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'
  rack (1.6.4) lib/rack/methodoverride.rb:22:in `call'
  rack (1.6.4) lib/rack/runtime.rb:18:in `call'
  activesupport (4.2.6) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  actionpack (4.2.6) lib/action_dispatch/middleware/static.rb:120:in `call'
  rack (1.6.4) lib/rack/sendfile.rb:113:in `call'
  rack-cors (0.4.0) lib/rack/cors.rb:80:in `call'
  railties (4.2.6) lib/rails/engine.rb:518:in `call'
  railties (4.2.6) lib/rails/application.rb:165:in `call'
  rack (1.6.4) lib/rack/lock.rb:17:in `call'
  rack (1.6.4) lib/rack/content_length.rb:15:in `call'
  rack (1.6.4) lib/rack/handler/webrick.rb:88:in `service'
  /Users/philipgreenwald/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:138:in `service'
  /Users/philipgreenwald/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/httpserver.rb:94:in `run'
  /Users/philipgreenwald/.rvm/rubies/ruby-2.2.0/lib/ruby/2.2.0/webrick/server.rb:294:in `block in start_thread'


  Rendered /Users/philipgreenwald/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (0.9ms)
  Rendered /Users/philipgreenwald/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/routes/_route.html.erb (4.3ms)
  Rendered /Users/philipgreenwald/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.0ms)
  Rendered /Users/philipgreenwald/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (0.8ms)
  Rendered /Users/philipgreenwald/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.6/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (89.6ms)
有趣的是:使用
离子仿真
发送post请求,但使用
离子仿真-lc
发送选项请求。无论哪种方式,它都不会在模拟器中工作。它仅适用于
爱奥尼亚发球
。这是另一个有趣的问题,登录前的ionic日志显示:

0     515446   log      deviceready has not fired after 5 seconds.
1     515447   log      Channel not fired: onCordovaInfoReady
最后,以下是从
爱奥尼亚服务运行时的服务器日志:

Started POST "/api/auth/sign_in" for ::1 at 2016-04-18 10:47:28 -0400
Processing by Api::SessionsController#create as HTML
  Parameters: {"email"=>"facility@example.com", "password"=>"[FILTERED]", "session"=>{"email"=>"facility@example.com", "password"=>"[FILTERED]"}}      FacilityUser Load (0.3ms)  SELECT  "facility_users".* FROM "facility_users" WHERE (email = 'facility@example.com' AND provider='email')  ORDER BY "facility_users"."id" ASC LIMIT 1
   (0.1ms)  begin transaction
  SQL (0.2ms)  UPDATE "facility_users" SET "tokens" = ?, "updated_at" = ? WHERE "facility_users"."id" = ?  [["tokens", "{\"vyBzhBqltxsx5KzZIvpnlA\":{\"token\":\"$2a$10$aWmHJTG8QcfUQJvB5wG9bOSgCLDi7kCJQlknOyZk0dEG1SwrYVpTu\",\"expiry\":1462199088},\"MaSuqSB_IYB3030XutiEEQ\":{\"token\":\"$2a$10$HSWVZ5821E/5pPpX2yRMAOa0LZ6w36AQH3tPwA/zBF9jjnrUdgztS\",\"expiry\":1462199119},\"Wx0wza7cApR_6lT0FYdbTA\":{\"token\":\"$2a$10$N/PE3TXrIGLi6yk2EH1M7e9BFPFo.DRkwSSlDLia8z0m/CeBGtHRy\",\"expiry\":1462199144},\"ur2tP2OtJOEMU5LoghEW0g\":{\"token\":\"$2a$10$ZE9Y3Ngd.VeR6Iug9iqQM.VNp9WKWrhxmKIiouIyo53ffhJGEIMzW\",\"expiry\":1462199180},\"qTPfmajhEnkYJD9YtoKnJw\":{\"token\":\"$2a$10$5woDc19MlfHwVztm5Gt1oeb0mvTJLnOXmqSZ0vtEYJYBiiZBhBCm.\",\"expiry\":1462199219},\"j3EIZGfC1EPKgsqIyA4ZAA\":{\"token\":\"$2a$10$j9lk7SdNi9VzCQvfq.zui.tQbE8i8FpRcu7nd6oOakqoFOu4DcsGK\",\"expiry\":1462199227},\"Re5xw7BGJDjF_VfkPvk1ig\":{\"token\":\"$2a$10$DltH/JoBIYmWF/ikwZVUpevJFIF0h7rjmPhwTAPa2pL07GBQGx0XK\",\"expiry\":1462199858},\"X2nb-s3j4BG9z8AFOplHcw\":{\"token\":\"$2a$10$mfeJvEtSlfFRgRuja5LVQ.VVn9I8JvudgEh7/02lI/kQ2E1csDe2S\",\"expiry\":1462200448}}"], ["updated_at", "2016-04-18 14:47:28.872136"], ["id", 1]]
   (1.3ms)  commit transaction
   (0.1ms)  begin transaction
  SQL (0.2ms)  UPDATE "facility_users" SET "last_sign_in_at" = ?, "current_sign_in_at" = ?, "sign_in_count" = ?, "updated_at" = ? WHERE "facility_users"."id" = ?  [["last_sign_in_at", "2016-04-18 14:37:38.770547"], ["current_sign_in_at", "2016-04-18 14:47:28.875744"], ["sign_in_count", 8], ["updated_at", "2016-04-18 14:47:28.876805"], ["id", 1]]
   (0.5ms)  commit transaction
[active_model_serializers] Rendered ActiveModel::Serializer::Null with Hash (0.07ms)
Completed 200 OK in 182ms (Views: 0.5ms | ActiveRecord: 2.6ms)

似乎
ionic-serve
ionic-emulate
从服务器获得相同的响应,而
ionic-emulate-lc
获得不同的响应。无论哪种方式,即使服务器响应对于
ionic-emulate
ionic-serve
是相同的,它也只适用于
ionic-serve
。我如何让应用程序同时使用
爱奥尼亚仿真
爱奥尼亚仿真-lc

经过大量挖掘,我终于阅读了这篇文章,完美地回答了这个问题:

基本上,白名单的api修复一切。另外,在Rails中,我必须添加

skip_before_filter :verify_authenticity_token
到api控制器。事实证明,问题毕竟是后台的

skip_before_filter :verify_authenticity_token