2

我有一个 Rails 服务器,我正在尝试使用 $.ajax 函数进行 PUT。服务器给出一个 POST 200 OK 但它没有被更新的数据库数据。

$.ajax({type: 'POST',
        url: this.SERVER_IP+ "/user_coordinates/" + this.FRIEND_ID,
        dataType: 'json',
        async: false,
        data: {_method:'PUT',
               page: {"user_coordinate":
                        {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
                     }
              },
        success: function(msg){
                   console.log("Sucess! Object: ");
                   console.log(msg);
                 },
        error: function(msg){
                 console.log("Error! Object: ");
                 console.log(msg);
               }
        });

正在调用错误函数。这里可能是什么问题?

谢谢你的时间 ;)

4

2 回答 2

3

我已经发现问题了。在我的控制器中使用 logger.debug 我注意到它期待 params[:user_coordinate] 并且在我的 ajax 调用中我传递了类似的东西:

data: {_method:'PUT',
               page: {"user_coordinate":
                        {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
                     }
              }

代替:

data: {_method:'PUT',
               user_coordinate: {"meetinglat":this.meetingPoint.getPosition().lat(),
                         "meetinglong":this.meetingPoint.getPosition().lng()}
      },

现在它正在工作!;)

logger.debug "参数 #{params[:user_coordinate]}"

于 2012-06-05T12:52:09.923 回答
0

在作为接收端的 Rails 控制器内部,在您的情况下为 user_coordinates_controller,尝试打印出参数是什么,--> puts params.inspect

另一个注意事项,看起来您在 AJAX 调用中输入了 POST

于 2012-05-30T16:24:05.120 回答