【发布时间】:2019-06-09 12:51:33
【问题描述】:
我正在向 Spring Boot 端点发出 POST 请求,并希望从服务器获取数据返回。通过在 Postman 中测试我的 API,它运行良好。但是在测试时 chrome,它甚至没有得到响应,chrome NETWORK bar 甚至没有记录。 所以代码很简单,找不到问题,RestController
@PostMapping("/signup")
public User signup(@RequestBody ModelUser user){
//fetch data from DTO and craft a user
User userData=user.adapter();
//...code here omit for sake of brevity
return userData;
}
当我使用 logger(slf4j) 进行调试时,它确实从 ajax 获取数据。 和 ajax:
$("#sign-up").submit(function () {
var userInfo={}
userInfo["phone"]=$("#phone").val()
userInfo["password"]=$("#password").val()
$.ajax({
//ajax successful send to spring boot endpoint
type:"POST",
contentType:"application/json",
url:"http://localhost:8080/signup",
data:JSON.stringify(userInfo)
}).then(
function(){
//this doesn't print in console
console.log("Hello Callback is executed")
}
)
})
虽然很奇怪,但我在使用 GET 请求时从未遇到过这种情况,因为当我使用 GET 测试 GetMapping 端点时成功调用了 ajax 回调。
哦,有很多类似的问题
我在 chrome 中没有得到任何响应状态代码,并且完全没有涉及有问题的 CORS
【问题讨论】:
-
@user7294900 什么意思?
-
您在控制器中返回的对象以及 then 回调中的控制台日志的目的是什么?尝试改用@ResponseBody。
-
@ThivankaW 哦,这个端点在一个用
RestController注解的类中,我想从服务器获取响应数据并在前端重定向页面 -
你返回的数据基本上是一个java对象,所以你想在前端页面返回一个java对象?也许你想要这个 json 格式的 java 对象?我在您的 ajax 中没有看到成功回调,您需要先实现它以提取响应
-
@ThivankaW 是的,我想要 JSON 格式。只要后端返回响应,无论失败还是成功,都会调用
then回调。但关键是我的 ajax 没有得到响应从服务器,更不用说返回的数据了
标签: ajax spring-boot spring-mvc