我正在使用一个 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/