簡體   English   中英

在Rails服務器上對Ruby的POST請求失敗

[英]POST request to ruby on rails server fail

我正在為移動應用程序構建帶有一些API的Rails應用程序。

問題在於所有POST請求均不起作用。

這是我的呼叫方式(通過phonegap應用程序):

 72                 $.ajax({
 73                     url: 'http://www.my-website.com:port/api/login',
 74                     type: 'POST',
 75                     dataType: 'json',
 76                     data:{"email":"my-email",
 77                         "password":"my-password"},
 78                     success: function(data){
 79                         alert(data);
 80                     },
 81                     error: function (event, jqXHR, ajaxSettings, thrownError) {
 82                         alert('[event:' + event + '], [jqXHR:' + jqXHR + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])');
 83                     }
 84                 });

這是服務器日志:

Started POST "/api/login" for xxx.xxx.xxx.xxx at 2015-04-03 10:58:51 +0000
Processing by ApiController#login as HTML
  Parameters: {"email"=>"\"my-email.com\"", "password"=>"[FILTERED]"}
Completed 500 Internal Server Error in 2ms

JSON::ParserError (A JSON text must at least contain two octets!):
  app/controllers/api_controller.rb:71:in `parse_request'

這是我在api控制器中收到錯誤的地方:

before_filter :parse_request
...
  def parse_request
      @json = JSON.parse(request.body.read)
  end

我解決了將ajax請求代碼更改為此的問題:

 69             var dt={
 70                 "email":"my-email",
 71                 "password":"my-password"
 72                 }
 73
 74             $('#submit').click(function(){
 75                 //localStorage['id'] = 10;
 76                 //if (localStorage != null)
 77                 //    window.location='index-logged.html';
 78                 $.ajax({
 79                     url: 'http://www.my-website.com/api/login',
 80                     type: 'POST',
 81                     data: JSON.stringify(dt),
 82                     cache: false,
 83                     success: function(data){
 84                         alert(data);
 85                     },
 86                     error: function (event, jqXHR, ajaxSettings, thrownError) {
 87                         alert('[event:' + event + '], [jqXHR:' + jqXHR + '], [ajaxSettings:' + ajaxSettings + '], [thrownError:' + thrownError + '])'
 88                     }
 89                 });
 90             });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM