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

用xhr(或fetch)和spring-mvc进行网络通信

丁安宜
2023-03-14

现在我正在学习Spring靴。

 fetch("/login/login.ajax",{
    data:{
      "test":"a"
    }
  }).then((res)=>{
    return res.json();
  }).then((res)=>{
    console.log(res);
  })
@RequestMapping("/login/login.ajax")
@ResponseBody
public HashMap<String, Object> login(@RequestBody JSONObject request){
    HashMap<String, Object> resultMap = new HashMap<String, Object>();

    if(request != null){
        Object req = request.get("test");

        System.out.println(req.toString());
        if(req.toString().equals("a")){
            resultMap.put("data","cool");
        }
        else{
            resultMap.put("data","hot");
        }
        log.info("ajax-login");
    }
    else{
        resultMap.put("errorCode", "0001");
    }

    return resultMap;
}

时间戳:“2020-12-09T09:22:27.095+0000”,状态:400,错误:“Bad request”,消息:“Required request body is missing:public java.util….login.loginctr.login(org.json.simple.jsonObject)”,跟踪:“org.springframework.http.converter.httpmessageNotr…java.base/java.lang.thread.run(thread.java:832)”,……}错误:“Bad request”消息:“Required request”/login/login.ajax“状态:400时间戳:”2020-12-09t09:22:27.095+0000“跟踪:”org.springframework.http.converter.httpmessageNotreadableException:Required request body丢失:public java.util.hashmap toast.test.login.simple.jsonObject(org.json.jsimple.object)在vlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.resolveargument(requestResponseBodyMethodProcessor.java:131)在org.springframework.web.method.support.handlerMethodArgumentResolverComposite.resolveargument(HandlerMethodArgumentResolverComposite.java:121)...

嗯,我认为fetch得到一个错误是可以的,因为它不适合。

但是这个错误在客户端得到关于服务器端的详细信息来源。

我想隐藏所有这些错误,特别是关于消息和跟踪的错误。

我怎么能这么做?请给我一些建议。

共有1个答案

危卜鹰
2023-03-14

您尚未在提取请求中发送正文。也许你可以这样做:

    var data={"test":"a"};
    fetch{url,{
    body: JSON.stringfy(data)
              }
         }

请参阅fetch文档:https://developer.mozilla.org/en-us/docs/web/api/fetch_api/using_fetch

 类似资料:
  • 问题内容: 只是想知道是否存在用于序列化对象,将其放入网络流并在另一端反序列化的教程或方法。我了解序列化,I / O,流,套接字等的原理,我只想举一个客户端向服务器发送对象的示例。 问题答案: 这(PDF)是指导您完成序列化的基础知识,及插座一个有用的教程,然后绑两个概念放在一起(大约一半通过幻灯片)来说明如何序列化对象,并从客户端发送到服务器(无RMI )。我认为这正是您想要的。

  • 问题内容: 如何阅读XHR响应并在Katalon Studio中解析? 我目前使用一种变通方法来测试我的应用程序的响应能力:我使用各种(* =可见,可点击,当前,不可见,不可点击,不存在)命令来衡量各种元素的加载时间。 我想更具体一点,并衡量网络请求的持续时间(可以在DevTools中看到-网络流量)。 能做到吗 问题答案: 在Katalon 7中以及与Chrome DevTools Protoc

  • 本文向大家介绍Android使用多线程进行网络聊天室通信,包括了Android使用多线程进行网络聊天室通信的使用技巧和注意事项,需要的朋友参考一下 TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信了。Java对基于TCP协议的网络通信提供了良好的封装,Java使用So

  • 问题内容: 我正在尝试捕获ajax请求的进度。 它没有按预期工作。据我所知,id为 progressProdCounter的 Div 应该在其中包含%的内容,但在我的情况下什么也没有发生。有帮助吗? __ 在我看来,这是行不通的 HTML: JS: 问题答案: ProgressEvent.lengthComputable ProgressEvent.lengthComputable只读属性是一个布

  • 我想在使用浏览器XMLHttpRequest或Fetch API请求特定HTML片段时“推送”其他资源(主要是HTML片段,但也包括CSS和图像)。我知道如何在服务器端构造HTTP/2响应,也知道如何将服务器发送的资源推送到浏览器缓存中,以进行常规页面加载,但我的问题是关于通过JavaScript编程启动的HTTP/2服务器推送响应,例如,我能在Ajax请求上推送额外资源吗,当我在后续的XHR请求

  • 问题内容: 我想捕获到我正在浏览使用python的Selenium的网站的访问量,因为使用代理将使访问量达到https的水平,这将不会使我走远。 我的想法是使用selenium来运行phantomJS并使用phantomJS执行脚本(不是在页面上使用webdriver.execute_script(),而是在phantomJS本身上)。我在想netlog.js脚本(从这里https://githu