【问题标题】:Http post requests in angularAngular 中的 Http 发布请求
【发布时间】:2020-09-26 23:58:49
【问题描述】:

我正在发送两个 HTTP 请求。第一个是用于授权的登录请求,第二个是用于创建一些用户数据的请求。登录调用工作正常,但在第二次调用时出现错误:

ERROR Error: Uncaught (in promise): HttpErrorResponse: {"headers":{"normalizedNames":{},
"lazyUpdate":null},
"status":404,
"statusText":"Not Found",
"url":"localhost:4200/… failure response for localhost:4200/api 404 Not Found"
    at resolvePromise (zone-evergreen.js:798) 
    at resolvePromise (zone-evergreen.js:750)
    at ZoneDelegate.invokeTask (polyfills.js:sourcemap:412)
    at Object.onInvokeTask (vendor.js:sourcemap:64550)
    at ZoneDelegate.invokeTask (polyfills.js:sourcemap:411)
    at Zone.runTask (polyfills.js:sourcemap:180)
    at drainMicroTaskQueue (polyfills.js:sourcemap:582)
    at ZoneTask.invokeTask [as invoke] (polyfills.js:sourcemap:497)
    at invokeTask (polyfills.js:sourcemap:1634)

我如何找出问题所在或问题所在? 我认为错误是因为第二个 API 没有来自第一个的身份验证信息才能正常工作,但是将 api1 的响应传递给 api2 也没有做任何事情。

发送请求的代码,我尝试在那里传递响应。 (虽然我仍然认为这是不正确的,但我不确定并且没有其他工作): 服务.ts

Login() {
    let promiseResult : any;
    this.http.post<any>('/Login', this.auth_payload).toPromise().then(data => {
      promiseResult = data;
      console.log("Login call" ,promiseResult)
      return promiseResult

    });
  }

    data = this.Login()
    Create(data) {
      let promiseResult : any;
      this.http.post<any>('/Create', this.create_payload).toPromise().then(data => {
        promiseResult = data;
        console.log("set Information call" ,promiseResult)
        return promiseResult

      });
    }

组件.ts


  onSubmit(){
    this.authService.Login()
    let call = this.Service.Login()
    return call 

  }
  data = this.onSubmit

  SetVital(){
    let data = this.onSubmit
    this.authService.Create(data)

【问题讨论】:

  • 什么是 schedule_payload?
  • 很抱歉。 API 也需要设置/创建信息的数据。
  • api需要的数据应该是第二个参数,第三个参数是headers和all。
  • 好的。我应该在这个数据中发送授权响应吗? (我现在看到我对变量的使用有点误导)
  • 在第二个参数中请求json,headers和所有在第三个参数中。

标签: angular typescript es6-promise


【解决方案1】:

如果您只是将 '/Login' 添加到您的 api 路径,它将请求 localhost:4200/Login 获取资源,这就是这里发生的情况,请尝试在请求中添加您的正确路径 正确的 api 路径 假设您的 api 在 localhost:3000/api 上运行,然后像这样更改您的请求

 Create(data) {
     const baseurl = 'localhost:3000/api/Create'
     return this.http.post(baseurl, this.create_payload);
     }

【讨论】:

    猜你喜欢
    • 2018-11-28
    • 2018-10-16
    • 1970-01-01
    • 2017-11-23
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2021-09-23
    • 1970-01-01
    相关资源
    最近更新 更多