You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular前端POST请求遇CORS错误,GET请求正常

向Spring后端发送POST请求时遭遇CORS错误,GET请求却正常工作

输入图片描述

我在向Java Spring后端发送POST请求时遇到了CORS错误,但从http://localhost:8080/api/currentPlayer发送的GET请求完全正常。

我已经在POST请求里添加了:

Access-Control-Allow-Origin Header": "*"

但依然收到该头部缺失的错误,这让我非常困惑。

以下是发起请求的Angular服务代码:

import { Injectable } from '@angular/core';
import { Player } from './Player';
import { Observable, catchError, map, of } from 'rxjs';
import { HttpClient, HttpClientModule } from '@angular/common/http';
import { HttpHeaders } from '@angular/common/http';
import { PlayerPost } from './PlayerPost';

@Injectable({
  providedIn: 'root'
})
export class PlayerService {

  constructor(private http: HttpClient,) { }

  private playerUrl = 'http://localhost:8080/api/currentPlayer';

  httpOptions = {
    headers: new HttpHeaders({
      'Content-Type':  'application/json',
      'Access-Control-Allow-Origin': '*'
    })
  };
  
  playerList: Player[] = [
    {
      "id" : 0,
      "name" : "Thorsten",
      "stack" : 5000
    },
    {
      "id" : 1,
      "name" : "Marietta",
      "stack" : 5000
    },
    {
      "id" : 2,
      "name" : "Rüdiger",
      "stack" : 5000
    },
    {
      "id" : 3,
      "name" : "Hans",
      "stack" : 5000
    }
  ]

  index: number = 0;

getPlayersObservable(): Observable<Player[]> {
    return this.http.get<Player[]>(this.playerUrl);
}

getPlayerList(): Player[] {
  this.getPlayersObservable().subscribe((x:Player[]) => {this.playerList = x;});
  return this.playerList;
}

postPlayer(player: PlayerPost) {this.http.post<any>(this.playerUrl, player, this.httpOptions).subscribe((res)=> console.log(res));

}

}

我尝试过把Access-Control-Allow-Origin头设置为"http://localhost:8080/api/currentPlayer",也尝试在服务器响应中添加该头,但都没有效果。

编辑: 问题出在服务器端,需要让Spring允许跨域。通过在POST方法上添加@CrossOrigin注解解决了问题。GET请求正常而POST异常的情况,说明问题根源在服务器端。

内容的提问来源于stack exchange,提问作者bermuda99

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 19:37:04