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

Ionic Angular前后端CORS请求失败问题求助

Ionic Angular应用CORS请求失败问题排查

我正在用Ionic Angular开发应用,前端运行在localhost:8100,后端运行在localhost:3700。从数据库获取数据时遇到以下错误:

"Cross-origin request blocked: The same-origin policy does not allow reading the remote resource at https://localhost:3700/api/productid/1. (Reason: CORS request failed.) Status code: (null)."

已尝试的后端CORS配置

我已安装cors包,并尝试过两种配置方式:

基础CORS配置

var express = require('express');
var cors = require('cors') //cors
var app = express();
app.use(cors());

自定义头CORS配置

app.use(
  cors({
    allowedHeaders: ["authorization", "Content-Type"], // 可修改头信息
    exposedHeaders: ["authorization"], // 可修改头信息
    origin: "*",
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    preflightContinue: false
  });
);

前端代码

Angular服务代码

import { HttpClient } from '@angular/common/http';
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';

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

  private urlApi = 'https://localhost:3700/api/productoid/1';

  constructor(private http: HttpClient) { }

  public getData() : Observable<any>{
    return this.http.get<any>(this.urlApi);
  }

}

组件代码

import { Component, OnInit } from '@angular/core';
import { ProductosService } from '../services/productos.service';

@Component({
  selector: 'app-tab2',
  templateUrl: 'tab2.page.html',
  styleUrls: ['tab2.page.scss']
})
export class Tab2Page implements OnInit {

  data: any[] = [];

  constructor(private productosService: ProductosService) {}

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

  llenarData(){
    this.productosService.getData().subscribe(data => 
      {this.data = data;
      console.log(this.data)

    })
  }
}

额外信息

  • 试过Firefox、Chrome、Edge、Opera等浏览器,问题依旧
  • 使用Postman调用后端接口可正常返回响应

编辑1

按建议在allowedHeaders中添加"x-requested-with",更新后的配置如下:

var express = require('express');
const cors = require('cors');
var app = express();

app.use(
  cors({
    allowedHeaders: ["authorization", "Content-Type", "x-requested-with"], 
    exposedHeaders: ["authorization"], 
    origin: "*",
    methods: "GET,HEAD,PUT,PATCH,POST,DELETE",
    preflightContinue: false
  }));

错误仍未解决,补充:应用包含用户账号登录验证模块。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 17:44:55