javascript - 使用 Ajax POST 到 REST 服务失败

标签 javascript ajax spring-boot

我正在使用一个 javascript 客户端,我试图用它来与服务器进行通信。我有一个 Javascript 函数,可以发布到 Spring Boot REST 服务。该服务是一个简单的测试服务,没有做太多事情...

@RequestMapping(method = RequestMethod.POST,value="/testservice")
@ResponseBody
public String testPostRequest(@RequestParam String someText)
{
   System.out.println("Reached the counting service! Param value: " + someText);

   if(someText != null)
   {
      ...
      perform some actions
      ...
   }

   return("Success");
}

我用来向服务器发送 POST 请求的 Javascript 如下:

var sendWords = function(toSend) {
    var data = { DataList : [toSend] };
    var param = { someText: data };

    $.post("http://localhost:8080/testservice",param,
        function(status,ret) {
          alert("We're back "+status);
    });
};

toSend 参数只是一个字符串,其中包含一些将发布到服务的文本。请注意,该服务的端口在服务器的 application.properties 文件中设置为 8080。

当我调用 Javascript 函数并将字符串发布到服务时,我从服务器收到以下日志消息:

2019-07-28 20:00:06.292  WARN 80844 --- [nio-8080-exec-8] .w.s.m.s.DefaultHandlerExceptionResolver : Resolved [org.springframework.web.bind.MissingServletRequestParameterException: Required String parameter 'someText' is not present]

我做错了什么,但无法弄清楚它是什么。我正在发送一个标记为 someText 字符串的对象,但由于某种原因,服务器无法识别它。

有人可以告诉我我错过了什么吗?我该如何让它发挥作用?

最佳答案

var data = { DataList : [toSend] }; var param = { someText: 数据 }; 这里的数据不是字符串。 您可能需要对其进行字符串化。

var param = { someText: JSON.stringify(data) };

关于javascript - 使用 Ajax POST 到 REST 服务失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57246383/

相关文章:

jquery - 选择2自定义消息格式

javascript - 如果在 ASP.Net MVC View 中验证失败,则设置 httppostedfilebase

javascript - $.ajax 无法正常工作

angular - 访问被 CORS 策略 : Response to preflight request doesn't pass access control check 阻止

使用 jobLauncherTestUtils 进行 Spring 批量集成测试

java - 为什么不使用click参数(Spring boot和vaadin)

javascript - Intellisense 可以识别 javascript 原型(prototype)函数吗?

javascript - 在jsfiddle中访问Bootstrap

javascript - 如何为多个输入编写 javascript?

javascript - 如果您未在同一浏览器上登录 Facebook,则不会显示 Facebook Like Box