angular 中的 Http post 请求
Http post requests in angular
我正在发送两个 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 也没有做任何事情。
用于发送请求的代码,我尝试在那里传递响应。 (虽然我仍然认为这是不正确的,但我不确定并且没有其他工作):
service.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
});
}
component.ts
onSubmit(){
this.authService.Login()
let call = this.Service.Login()
return call
}
data = this.onSubmit
SetVital(){
let data = this.onSubmit
this.authService.Create(data)
如果您只是将 '/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);
}
我正在发送两个 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 也没有做任何事情。
用于发送请求的代码,我尝试在那里传递响应。 (虽然我仍然认为这是不正确的,但我不确定并且没有其他工作): service.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
});
}
component.ts
onSubmit(){
this.authService.Login()
let call = this.Service.Login()
return call
}
data = this.onSubmit
SetVital(){
let data = this.onSubmit
this.authService.Create(data)
如果您只是将 '/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);
}