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

Angular发送XHR请求不符合Java EE后端预期的问题解决咨询

前端请求适配问题求助

问题背景

我负责的项目前端基于Angular框架,后端采用Java EE。当前遇到的问题是:后端仅接受标准HTTP请求,但Angular的HttpClient发送的是XHR请求,导致接口调用报错。

可选解决方案

  • 修改后端配置,开启CORS的access-control-allow-origin(需确认是否有权限修改后端)
  • 调整前端代码,使请求不再以XHR形式发送,改为标准HTTP请求(我负责前端开发,可直接调整代码,优先选择此方案)

现有代码

数据请求服务代码

import { Injectable } from '@angular/core';
import { HttpClient, HttpParams } from '@angular/common/http';
import { HttpHeaders } from '@angular/common/http';

import { Observable } from 'rxjs';
import { catchError } from 'rxjs/operators';

import { Survey } from './survey';
import { HttpErrorHandler, HandleError } from '../http-error-handler.services';

import { environment } from '../../environments/environment';


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

  surveysURL=environment.baseUrl+'api/surveys/';
  private handleError: HandleError;
  
  constructor(
    private http: HttpClient, 
    httpErrorHandler: HttpErrorHandler) {
      this.handleError = httpErrorHandler.createHandleError('DisplayService');
     }

     // 从服务器获取问卷数据
     getSurveys(): Observable<Survey[]>{
      return this.http.get<Survey[]>(this.surveysURL)
      .pipe(
        catchError(this.handleError('getSurveys', []))
      );
     }

}

调用服务的组件代码

import { Component, OnInit } from '@angular/core';

import { Survey } from './survey';
import { SurveysDisplayService } from './surveys-display.service';

@Component({
  selector: 'app-survey',
  templateUrl: './surveys-display.component.html',
  providers:[SurveysDisplayService],
  styleUrls: ['./surveys-display.component.css']
})
export class SurveysDisplayComponent implements OnInit {
  surveys:Survey[]=[];


  constructor(private surveysDisplayService:SurveysDisplayService) { }

  ngOnInit(): void {
    this.getSurveys();
  }

  getSurveys(): void {
    this.surveysDisplayService.getSurveys()
      .subscribe(surveys => (this.surveys=surveys));
  }

}

Angular版本信息

Angular版本信息

求问如何修改前端代码,让请求以标准HTTP形式发送而非XHR?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 20:54:18