我正在尝试保存数据库AJAX中的值。问题是我的控制器操作在执行AJAX时没有触发,并且没有收到正在发送的数据。此外,AJAX调用正在执行成功和错误方法。
我的控制器' ServerManagementController'有行动,
def read_data
@responseArray = JSON.stringify(params[:response])
@responseArray.length
UserServer.makeUserServerRecord #This stores dummy values in the database
end
这是AJAX,
$.ajax(
{
url: "/server_management/read_data",
type: "POST",
data: JSON.stringify(response),
dataType: "json",
contentType: 'application/json',
success: alert("sent"),
error: alert("failed")
}
);
我已将路线定义为
resources :server_managements do
collection do
post 'read_data'
end
end
我被困在这两天,任何帮助都会受到赞赏。
答案 0 :(得分:0)
在您的控制器中,您需要将json渲染为响应:
def read_data
@responseArray = params[:response]
@responseArray.length
if UserServer.makeUserServerRecord
render json: {status: "ok"}
else
render json: {status: "false"}
end
end
Ajax应该是这样的:
type: 'POST',
datatype: 'json',
url: '/server_managements/read_data/',
success: function(status){
if (status.success === true) {
alert("sent");
}else{
alert("failed");
}
}
让我知道是的。
答案 1 :(得分:0)
如果未调用此操作,您可能会从以下方面受益:
-
<强>后端强>
#config/routes.rb
resources :server_management do
collection do
post :read_data #-> domain.com/server_management/read_data
end
end
我认为您的一个主要问题是,您是否未将正确的数据发送到ServerManagementController
,无论您是否与控制器本身有任何其他问题
#app/controllers/server_management_controller.rb
Class ServerManagementController < ApplicationController
def read_data
...
respond_to do |format|
format.json { render json: "Response".to_json }
end
end
end
这允许您定义JSON请求的响应,使您能够定义运行它所需的文件。处理状态/成功取决于您支持的UserServer
代码
-
<强>的Ajax 强>
仅当您的ajax请求未到达控制器/端点(error
等)时,才会调用ajax 404
函数。根据{{1}}的说法,您将要执行以下操作:
zauzaj
我也曾经认为,当存在真正的问题时,会发生Ajax错误回调。不是这样 - 当请求未到达您指定的端点时,它只
如果您想使用Ajax处理任何异常,您需要在$.ajax({
url: "/server_management/read_data",
type: "POST",
data: JSON.stringify(response),
dataType: "json",
success: function(data) {
alert("sent");
},
error: function(data) {
alert("failed")
}
});
回调中做出决定;至少从我的经验来看。