2012-07-07 59 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,它的功能非常完美。