当前位置: 首页 > 知识库问答 >
问题:

如何用jQuery处理Ajax http post的成功和失败?

杨建章
2023-03-14

我用JQuery 2.0.3这样做http post:

    $.ajax({
        type: "POST",
        url: "/demo/submitTransactions",
        data: JSON.stringify({ ConfirmedTransactions: confirmedTransactions }),
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(data){alert(data);},
        failure: function(errMsg) {
            alert(errMsg);
        }
    });

json在服务器上发布和编写,但是响应success:failure:在AFAIK中没有启用。接收json数据的控制器代码为

    @RequestMapping(value = "/submitTransactions", method = RequestMethod.POST, headers = {"content-type=application/json"})
    @ResponseBody
    @Transactional
    public String submitTransactions(@RequestBody @Valid final String string) {
        try {
            PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(filename, true)));
            out.println("\n"+string);
            out.close();
        } catch (IOException e) {
            LOGGER.severe("IOException");
            e.printStackTrace();
        }
        LOGGER.info("Received transactions "+string);
        return "Received JSON data";
    }

我如何还能使成功和失败得到发布的json成功接收或提交失败的回调?它可以提交数据,但是来自服务器的响应“Received JSON data”不做任何事情,这与控制器方法void没有区别,只是用return语句写入数据。您是否可以建议一个改进,以便发布数据的javascript也接收响应,我认为如果服务器出现错误,它可能是状态200、OK,或者状态500或类似?

    $.ajax({
        type: "POST",
        url: "/demo/submitTransactions",
        data: JSON.stringify({ ConfirmedTransactions: confirmedTransactions }),
        contentType: "application/json; charset=utf-8",
        dataType: "json"
    })
            .done(function(data){alert('Done!'+data);})
            .fail(function(errMsg) {alert('Failure!'+errMsg);});

现在,如果我也使用jackson将控制器代码更改为响应对象

@requestmapping(value=“/submitTransactions2”,method=requestmethod.post,headers={“content-type=application/json”})@responsebody@transactional public AccountResponse submitTransactions2(@requestbody@valid final String String){try{PrintWriter out=new PrintWriter(new BufferedWriter(new FileWriter(new FileWriter(filename,“收到”);}

然后我得到的回答是“完成!”(但是当只使用字符串而不使用Jackson时,我得到的响应是“failed”。

根据第二个答案更新后,这种变化似乎起作用了:

    $.ajax({
        type: "POST",
        url: "/demo/submitTransactions",
        data: JSON.stringify({ ConfirmedTransactions: confirmedTransactions }),
        contentType: "application/json; charset=utf-8",
        dataType: "text"
    })
            .done(function(data){alert('Done!'+data);})
            .fail(function(errMsg) {alert('Failure!'+errMsg);});

.

共有1个答案

郭元明
2023-03-14

正如Oleg Estekhin在回答中所说,正确的属性是error。您还应该使用promise变体:

$.ajax({ ... })
 .done(...)
 .fail(...);

接下来,应该将datatype更改为text,以便jQuery知道返回的值将作为普通文本而不是JSON进行解析。这将导致调用success回调。最后的代码如下所示:

    $.ajax({
        type: "POST",
        url: "/demo/submitTransactions",
        data: JSON.stringify({ ConfirmedTransactions: confirmedTransactions }),
        contentType: "application/json; charset=utf-8",
        dataType: "text"
    })
     .done(function(data){alert(data);})
     .fail(function(errMsg) {alert(errMsg);})
     ;
 类似资料:
  • 本文向大家介绍如何处理jQuery AJAX成功事件?,包括了如何处理jQuery AJAX成功事件?的使用技巧和注意事项,需要的朋友参考一下 要处理jQuery AJAX成功事件,请使用方法。只要AJAX请求成功完成,ajaxSuccess(callback)方法就会附加一个要执行的函数。这是一个Ajax事件。 这是此方法使用的所有参数的描述- callback- 要执行的功能。事件对象,XML

  • 问题内容: 以前,在Rails 2.3.8中,我使用了原型帮助器和(以及其他)。 这些选项如下: (来自文档的示例)。此示例将在成功后用类“ cart”更新html元素,而在失败时将类“ error”更新。 现在我相信操作方式已经改变,我们写: 并且没有设置选项了。现在,代替普通的html,我们渲染javascript,如下所示(在jquery中): 但是您如何处理错误情况?我可以在控制器中处理它

  • 使用下面的代码和twitter4j库,我终于成功地处理了我自己的tweets。我现在一直在努力调整代码,以吸引特定用户的推文,没有任何运气,不管网上有很多人发布了“工作代码”。有人能引导我,告诉我到底需要改变什么吗?谢了! 编辑-修改的代码,以获得用户推特。不产生错误或结果...

  • 我正在尝试使用Web客户端创建REST调用 我只想记录通话结果。成功时 - 使用响应正文记录成功消息,在 5XX 或超时或其他时 - 记录错误消息。日志应该在后台创建(而不是由创建调用的线程创建)但是每次都会执行,工作正常,但也有 记录在日志文件中。 我也在一些教程中看到过方法,但在我的设置中有这样的方法。 如何记录成功和失败消息?

  • 我正在与我无法控制的遗留库集成。 它定义了以下接口: 这个“subscribe”方法被不同的线程频繁调用。我关心“Future.get()”的结果的唯一情况是当它失败时,所以我可以获取并处理异常。这不一定发生在调用线程中。另外,在“Future.get()”上阻塞调用线程对我来说是非常昂贵的,因为即使成功也可能需要几秒钟才能完成。 所以我的任务是以某种方式“后处理”所有这些期货,过滤失败的期货。基

  • 我在服务器1、服务器2和服务器3上运行zookeeper设置,同样kafka也在服务器1、服务器2和服务器3上运行。 安装程序正在kubernetes中运行。 问题陈述: > 如果一个动物园管理员设置关闭,整个设置都会关闭,因为kafka依赖于动物园管理员。我说得对吗? 如果Q1正确-是否有任何方法来进行设置,例如如果一个动物园管理员服务器将停机,那么kafka应该按原样运行? 如何在kubern