2012-07-05 75 views
4

我有一个令人惊讶的困难时刻让json从javascript发布到rails支持的web服务。通过JQuery发布JSON到Rails

这里是jQuery代码;

<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script> 
<script> 
var jsonPost = { 
     "email":"[email protected]", 
     "token":"63uO6eEfLVBFpnZswzI", 
     "content": "testcontent", 
     "notification_type": "2", 
     "name":"testname", 
} 
    function callback(data){alert(data)}; 

jQuery.ajax({ 
     type: "POST", 
     url: 'http://localhost:3000/api/create.json', 
     data: jsonPost, 
     success: callback, 
     dataType: "json", 
     contentType: "application/json", 
     processData: false 
     }); 


</script> 

在铁轨上的一面:

def api_create 
    respond_to do |format| 
    format.json { 
     email = params[:email] 
     token = params[:token] 
     auto_action = params[:auto_action] 

铁轨边会识别请求的JSON,但我没有看到数据在请求中轨调试时。

难道有人指着我正确的方向吗?

回答

1

难道你不需要将你的JSON转换成一个字符串,如果你在轨道中做相反的事情?

jQuery.ajax({ 
    type: "POST", 
    url: 'http://localhost:3000/api/create.json', 
    data: JSON.stringify(jsonPost), 
    success: callback, 
    dataType: "json", 
    contentType: "application/json", 
    processData: false 
    }); 
+0

我之前试过这个,现在再次提出您的建议。我在rails中的请求中看不到任何内容。也许有人可以告诉我我应该在请求中寻找什么?以下是我在调试器中看到的rails请求对象:http://cl.ly/Htvn – 2012-07-05 23:45:58

+0

我仍在自己调查类似的问题,但知道你不需要进行串联化。在https://www.youtube.com/watch?v=5nL7X1UMWsc上查看非常清晰的视频。 – MSC 2015-03-30 10:48:07