Json jqueryajax调用:如何解析结果?

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

我有一个模式对话框(通过jqueryui完成),它将表单提交给远程控制器操作

这是jquery函数,名为:

$("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"}
我的问题是:

  • 为什么我在“成功”和“错误”块中设置的调试警报没有得到执行
  • 在对话框中等待响应的同时,如何编写代码来解析响应
  • 如何编写代码在ajax调用期间阻止表单元素
  • 我很抱歉,如果这个问题对你们大多数人来说似乎很愚蠢,但我对ajax完全陌生,我正试图通过我所知道的一些有经验的模式来学习

    谢谢你的回复

    我的问题是:

  • 为什么在“成功”和“错误”块中设置调试警报 难道你没有被处决吗
  • 如何编写代码以在等待时解析响应 在对话中找到它
  • 如何编写代码在ajax过程中阻止表单元素 打电话
  • 如果您想使用标识,那么您错过了#指示符:

    $(“#fpForm”)

  • 在通话中添加
    sync:true
    选项

  • 您可以:在发布请求后,在表单元素上设置disabled属性,或者使用元素(可能是半透明的)屏蔽页面以转移输入


  • 第一个错误是使用了
    $(“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响应的屏幕!!!