Javascript 使用Ajax发布到REST服务失败

Javascript 使用Ajax发布到REST服务失败,javascript,ajax,spring-boot,Javascript,Ajax,Spring Boot,我正在使用一个javascript客户机,试图使用它与服务器通信。我有一个Javascript函数,它正在发布到SpringBootREST服务。该服务是一个简单的测试服务,没有做很多 @RequestMapping(method = RequestMethod.POST,value="/testservice") @ResponseBody public String testPostRequest(@RequestParam String someText) { System.out.

我正在使用一个javascript客户机,试图使用它与服务器通信。我有一个Javascript函数,它正在发布到SpringBootREST服务。该服务是一个简单的测试服务,没有做很多

@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字符串的对象,但由于某种原因服务器无法识别它


有人能告诉我我错过了什么吗?如何使其工作?

您缺少
@RequestParam()
中的值,例如
@RequestParam(value=“someText”,required=true)

您也可以使用@PathVariable。 这可能会有帮助:
var data={DataList:[toSend]}; var param={someText:data}; 这里的数据不是字符串。 你可能需要把它串起来


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

谢谢。虽然您的条目没有提供解决方案,但您的链接确实提供了非常有用的信息。