2012-07-07 65 views
0

我正在爲我的Ruby on Rails網站開發一個API,當我嘗試使用jQuery來捕獲響應令牌時,出現問題。隨着捲曲工作正常,但在jQuery中沒有得到任何迴應。JSON的空JSON POST響應,但與Curl一起工作

Rails的控制器

render :status => 200, :json => { :token => @user.authentication_token } 

的部分使用curl:

[email protected]:~/$ curl -F '[email protected]' -F 'password=12345' http://localhost:3000/api/v1/tokens.json 

Response with: 

{"token":"azScPXjgppqR1Q3cH82S"} 

使用jQuery

function login() { 

    $.ajax({ 
     url: "http://localhost:3000/en/api/v1/tokens.json", 
     type: "POST", 
     dataType: "json", 
     data: "[email protected]&password=12345", 
     crossDomain: "true", 
     beforeSend: function() { 
     // loading 
     }, 
     success: function(data) { 
     // finish load 
      alert(data.message); 
     }, 
     error: function(request, type, errorThrown) { 
      alert(request.status + " " + request.statusText); 
     } 
    }); 

} 

使用jQuery我得到的警報 「0錯誤」,並螢火顯示空響應。 (32b尺寸)。

有什麼想法?

在此先感謝。

+0

爲什麼你將crossDomain設置爲true?這用於JSONP調用而不是用於JSON調用。如果你刪除了會發生什麼? – JoshL 2012-07-07 00:36:50

+2

網址不一樣,一個是'en/api'另一個是'/ api /' – Tyrsius 2012-07-07 00:54:56

+0

我不認爲你可以使用json進行跨域請求;你有沒有試過json? – nbrooks 2012-07-07 01:20:31

回答

0

JSONP請求只允許GET方法,所以我將我的api控制器上的路由從POST更改爲GET,它的功能非常完美。