如何从 REST API 获取响应并从 jquery ajax 调用执行操作?

Posted

技术标签:

【中文标题】如何从 REST API 获取响应并从 jquery ajax 调用执行操作?【英文标题】:How to get response back from the REST API and perform actions from jquery ajax call? 【发布时间】:2021-01-21 04:17:26 【问题描述】:

我正在学习 JS、jquery,并尝试构建一个登录页面,在将凭据提供给我的应用程序 URL 后,我应该得到响应,并且我应该能够执行相应的操作。 类似于:如果响应是“成功”,那么我应该收到成功警报并重定向到另一个页面(不知道该怎么做),如果响应是“失败”,我应该发出警报。 以下是我的js文件中的相关sn-p:

        $.ajax(
        url: "http://localhost:8588/api/userLogin",
        type: "POST",
        data: credentials,
        dataType: "json",
        contentType: 'application/json',
        success: function(response) 
            alert(response);
        
    );

我的 java 控制器方法用 @RestController 进行了注释:

        @PostMapping(value = "/userLogin", consumes = "application/json")
        public String userLogin(@RequestBody UserRequest userRequest) 
        System.out.println(userRequest.getUserId()+ " "+ userRequest.getPassword());
        User user = userService.getUser(userRequest);
        return (user != null) ? "succeess" : "fail";
      

我没有收到任何错误 我可以调用 API,但无法在 UI 上获得响应。我错过了什么?

【问题讨论】:

您遇到了什么错误。Rest API 中的 System.out 是否被打印出来? 你使用@Controller还是@RestController? @javaguy,我在其余 API 中没有收到任何错误 是的,我正在使用@RestController 【参考方案1】:

我采用了您的代码并模拟了像您这样的简单案例。大多数代码看起来都是正确的,但是正如您所说,控制台中没有错误,也没有对客户端的响应,所以问题一定出在某个地方。有些事情你没有在这里指定,所以为了其他人的更多上下文,我假设UserRequest

public class UserRequest 
    public String username;
    public String password;

对于我正在使用的 ajax 请求 data

JSON.stringify(username: "developer", password:"pass")

现在,我在客户端的警报中收到 200 个响应代码和成功消息。如果尝试此操作后弹出任何错误,请告诉我。

【讨论】:

以上是关于如何从 REST API 获取响应并从 jquery ajax 调用执行操作?的主要内容,如果未能解决你的问题,请参考以下文章

django rest 框架身份验证

iOS:如何从 REST SwiftUi 访问和使用 API 响应数据

如何在颤动中解析此响应,并从 API 响应中的两个数组的文本字段中获取响应值? [关闭]

Yammer REST API:如何获取外部网络的访问令牌?

如何将JSON响应转换为Java List-使用Rest Assured进行API测试

如何在自动创建的 API Rest Hapi 之前获取 validateFunc 的结果