angular - 如何使用 Angular 发送带有对象参数的 fetch api 请求?

标签 angular typescript fetch fetch-api

我尝试将 json 格式的用户对象发送到后端,并在后端从参数中获取用户名、密码、电子邮件等。 这是我的后端代码:

@PostMapping("/login")
    public User loginUser(@RequestBody User user) throws Exception {
        User userObj = null;
        if (!isNull(user.getEmail()) && !isNull(user.getPassword())) {
            userObj = userService.getUserByEmailAndPassword(user);
        }
        if (isNull(userObj)) {
            throw new Exception("Bad credentials");
        }
        return userObj;
    }

如您所见,我没有发送字符串参数,而是发送了整个对象。

在前端, 我的组件代码是:

async loginUser(user:User) {
   let response = await this._service.LoginUser(user);
   let data = response.json();
   console.log(data);
 }

并且此代码从服务类调用以下方法,

LoginUser(user: User) {
    var url = new URL"http://localhost:8080/login");
    var params =[[user]];
    url.search = new URLSearchParams(user).toString;
    return fetch("http://localhost:8080/login", user)
  }

但是发送带有参数user的请求有问题。我怎样才能发出这个请求?(不使用 Jquery)

最佳答案

@PostMapping("/login")

您将 login 端点定义为 POST 方法,因此您必须使用 POST 方法调用 fetch。

LoginUser(user: User) {
  return fetch("http://localhost:8080/login", {
    method: 'POST',
    body: JSON.stringify(user)
  });
}

注意:如果您正在使用标题中所述的 Angular 2+,那么最好使用 Angular 的内置 HttpClient( https://angular.io/api/common/http/HttpClient ) 模块。

关于angular - 如何使用 Angular 发送带有对象参数的 fetch api 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63102220/

相关文章:

javascript - 错误 错误 : No value accessor for form control with unspecified name attribute

javascript - 尝试上传文件时无法读取未定义的属性 'length'

javascript - Angular 2+ : IE 11 Unable to get property 'call' of undefined or null reference

typescript - 对返回对象文字的 Array.map 进行类型检查

html - 在 innerHTML angular 2 中注入(inject) <input>

node.js - 在 Node.js 中使用 fetch 向本地主机发出请求时 ECONNREFUSED

javascript - React JS fetch 作为 POST 跨域,PHP 返回 200 但没有正文响应

json - 使用 json 模式的 Angular 4 动态组件加载

javascript - Angular 2(点击)有时不触发

backbone.js - 在钛合金中使用 where 条件发布 feature