Json jqueryajax调用:如何解析结果?
我有一个模式对话框(通过jqueryui完成),它将表单提交给远程控制器操作 这是jquery函数,名为:Json jqueryajax调用:如何解析结果?,json,asp.net-mvc-2,jquery,Json,Asp.net Mvc 2,Jquery,我有一个模式对话框(通过jqueryui完成),它将表单提交给远程控制器操作 这是jquery函数,名为: $("fpForm").submit(function() { $.ajax({ type: "POST", url: "ForgotPassword", data: $("#fpForm").serialize(), success: function(response) { alert(re
$("fpForm").submit(function() {
$.ajax({
type: "POST",
url: "ForgotPassword",
data: $("#fpForm").serialize(),
success: function(response) {
alert(response);
},
error: function(response) {
alert(response);
}
});
});
该操作对数据进行一些验证,然后以JSON格式返回响应。例如,假设这是一个示例响应:
{"result":"NOK","message":"The user is not registered on the system"}
我的问题是:
sync:true
选项第一个错误是使用了
$(“fpForm”).submit
而不是$(“#fpForm”).submit
如果服务器返回JSON数据,例如JsonResult,则应包含数据类型:“JSON”
,以将结果转换为对象中的对象。之后,您可以替换警报(响应)代码>到
alert('Result: ' + response.result + ', Message: ' + response.message);
要阻止表单元素,我建议您使用。在上,您将找到不同的用法示例,并找到您喜欢的方法。stackoverflow上发布了许多问题,这些问题将为您提供一些指导。。。第一个错误你是对的,但是表单也提交了!谢谢你的回答!!!我已经包括了你的建议,但第一个错误仍然存在。我还为调用添加了选项“sync:true”,但我被重定向到另一个只包含json响应的屏幕!!!如果需要,我认为您不需要使用sync:true
。您的程序也应该在没有sync:true
的情况下运行。这是尚未工作的错误是不固定的。“第一个错误”是什么意思?是否将数据发送到服务器?数据是否与代码或工作标准表格“提交”一起发送?能否插入警报(“在$.ajax之前”)在调用$.ajax
之前执行code>?您可以使用Fiddler(请参阅)或Firebug来验证数据是否真的被发送和接收。@Lorenzo-尝试使用jQuery的preventDefault
方法()。向submit
处理程序添加一个event
参数(jQuery自动将事件对象传递给处理程序),然后像这样调用preventDefault方法:$(“#fpForm”).submit(函数(事件){event.preventDefault();/*进行ajax调用*/})代码>@Lorenzo:我在你的代码中发现了一个我们一开始都看不到的错误。submit
event的事件处理程序函数应返回false(参见的备注示例)。如果执行此操作,则可以删除event.preventDefault()代码>。非常感谢!我已经包括了你的建议,但第一个错误仍然存在。我还为调用添加了选项“sync:true”,但我被重定向到另一个只包含json响应的屏幕!!!