zl程序教程

您现在的位置是:首页 >  前端

当前栏目

关于Angular使用http发送请求后的响应处理

Angular响应HTTP 处理 关于 请求 发送 使用
2023-09-14 09:04:02 时间

源代码:

import { Component, OnInit } from '@angular/core';
import { FormControl } from '@angular/forms';
import { HttpClient } from '@angular/common/http';

const ENDPOINT = "http://localhost:3000/echo?data=";

@Component({
  selector: 'jerryform',
  template: `
    <input type="text" [formControl]="favoriteColorControl">
  `
})
export class ReactFormComponent implements OnInit  {

  constructor(private http:HttpClient){
  }
  ngOnInit(): void {
    this.favoriteColorControl.valueChanges.subscribe(
      (value) =>{
        console.log('new value: ' + value);
        this.http.get('http://localhost:3000/angular/' + value).subscribe((response)=>console.log('response from http: ' + response),
        (error)=>console.log('error: ' + error));
      }
    )
  }
  favoriteColorControl = new FormControl('');
}

nodejs实现的后台API代码:

  app.route('/angular/*').get(
    
    function(req, res){
      var sResponse = 'Hello World';
      var oResponse = {"success:":"ok"};
      setTimeout( ()=>res.send(sResponse), 1000);
    }
    );

测试发现,这个HTTP请求在Chrome开发者工具里标注为成功:

然后我Angular代码里触发的是error handler,而不是期望中的success handler:

从错误明细能看出,Angular期望API返回的response是json结构:Unexpected token H in JSON at position 0

观察HTTP请求头部字段里的Accept:application/json:

返回一个json格式的response即可:


更多Jerry的原创文章,尽在:“汪子熙”: