angular - 从 Angular 客户端到 Spring 的 GET 请求
问题描述
我的页面上有 2 个文本框和一个用于求和的按钮。我将我的号码发送到服务器并得到 404 和 HttpErrorResponse。我的服务器接受这些值但不发回响应。我想从服务器获得我的价值。
我在控制器中的方法。
@CrossOrigin(origins = "http://localhost:4200")
@GetMapping("/greeting")
public String greeting(@RequestParam String num1, @RequestParam String num2) {
int sum = 0;
System.out.println("num1 = "+num1);
System.out.println("num2 = "+num2);
try{
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(num2);
sum = n1+n2;
System.out.println("sum ="+sum);
}
catch (Exception|Error e){
e.printStackTrace();
}
return Integer.toString(sum);
}
Angular 的组件:
import { Component, OnInit } from '@angular/core';
import { CalculateService } from './calculate.service';
@Component({
selector: 'app-testsum',
templateUrl: './testsum.component.html',
styleUrls: ['./testsum.component.css'],
providers: [ CalculateService]
})
export class TestsumComponent implements OnInit {
sum:number;
num1:number;
num2:number;
done:boolean=false;
constructor(private calculateService: CalculateService) { }
submit(){
let rez = this.calculateService.getSum(this.num1, this.num2).subscribe(data => this.sum);
console.log("rez = "+rez);
console.log("sum = "+this.sum);
}
ngOnInit(): void {
}
}
服务:
import {Injectable} from '@angular/core';
import {HttpClient} from '@angular/common/http';
@Injectable()
export class CalculateService{
constructor(private http: HttpClient){ }
getSum(num1: number, num2: number){
return this.http.get('http://localhost:8090/greeting?num1=' + num1 + "&num2=" + num2);
}
}
解决方案
您应该将您的响应包装在 a 中ResponseEntity
,它是负责为您的响应提供状态的实体,例如您在此处响应 ok,因此状态将为 200
@CrossOrigin(origins = "http://localhost:4200")
@GetMapping("/greeting")
public ResponseEntity<String> greeting(@RequestParam String num1, @RequestParam String num2) {
int sum = 0;
System.out.println("num1 = "+num1);
System.out.println("num2 = "+num2);
try{
int n1 = Integer.parseInt(num1);
int n2 = Integer.parseInt(num2);
sum = n1+n2;
System.out.println("sum ="+sum);
}
catch (Exception|Error e){
e.printStackTrace();
}
return ResponseEntity.ok().body(Integer.toString(sum));
}
推荐阅读
- amazon-web-services - AWS Elastic Beanstalk:未知主机
- sql - 尝试更新非事务性表时出现 Hive 错误
- javascript - 如何从 TODO 列表中显示删除按钮
- r - 如何将 SharePoint 列表加载到 R 中的小标题中?
- android - 如果用户隐藏了通知通道,关联的前台服务是否还能成功启动?
- halide - Halide: Var 声明格式
- python-3.x - 为什么 anaconda3 安装似乎以 python2 而不是 python3 结束
- typescript - 如何在 VS 代码中禁用保存时自动加入行?
- python - 解析 XML 时出错:列表索引必须是整数或切片,而不是 Str
- powershell - 当显示名称中有特殊字符时,获取通讯组中所有显示名称的 SMTP 地址