当前位置: 首页 > 面试题库 >

localhost上的Angular2 CORS问题[重复]

岳浩穰
2023-03-14
问题内容

Failed to load URL: Response to preflight request doesn’t pass access control check: No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘http://localhost:4200' is therefore not allowed access.

是否可以从Angular2修复此问题而无需更改服务器端(Java Spring Controller)中的代码?

我的密码

const headers = new Headers({'Content-Type': 'application/json',
    'Access-Control-Allow-Origin' : '*'
});
return this.http.get(url, {headers: headers})
  .toPromise()
  .then(response => response.json().data as Hero[])
  .catch(this.handleError);

问题答案:

您的后端似乎不接受跨域请求。

为了使其能够在Angular上运行,您必须使用代理,以便前端和后端使用相同的域(相同的主机名和相同的端口)

在开发模式下,您可以使用proxy.config.json文件设置代理。假设您的后端托管在上your- domain.com:80,并且您的后端请求以开头/backend,则该文件将包含以下内容

{
    "/backend/*":{
        "target": "your-domain.com",
        "secure": false,
        "logLevel": "debug"
    }
}

通过更改package.json中的以下配置,使您的开发HTTP服务器使用此文件

 "scripts": {
    "start": "ng serve --proxy-config proxy.config.json",
  }

不要忘了使用要求,是你的后端调用http://localhost:4200/backend/...,而不是http://your- domain.com/...

为了使其能够在远程服务器上运行,必须在Java Web应用程序(例如nginx或Apache)上设置HTTP服务器,该服务器配置为执行与前面所述相同的操作。



 类似资料:
  • 看起来有两种路径,Eclipse无法读取代码/识别类。

  • 我试图在虚拟机上安装Laravel项目的所有包。我已经安装了一切,但在作曲家安装操作显示错误MCrypt PHP Exstension必需。 但是Mcrypt已安装!我也做过这样的动作: 并在mcrypt.inimcrypt.sophp5路径。那么现在包含mcrypt.ini文件的是什么?只是这段文字: exstension=/usr/lib/20131226/mcrypt.so 还使用了:和而没

  • 我收到以下错误 索引-AFE1F71068EDED。js:1混合内容:页面位于'https://currency-rho.vercel.app/'已通过HTTPS加载,但请求了不安全的资源'http://api.currencylayer.com/live?access_key=138ca01354c449d7741ab9dbca4f4252'. 此请求已被阻止;内容必须通过HTTPS提供。 我假

  • 我正在尝试使用2个jar文件在Eclipse中运行TomcatV9.0服务器: taglibs-standard-impl-1.2.5.jar taglibs-standard-spec-1.2.5.jar 但我总是遇到这样的错误消息:“localhost的服务器TomcatV9.0服务器未能启动。”而错误日志表明它是由 我仔细检查了我的jar文件路径,发现它们与项目的其余部分在正确的位置: C:

  • 原始关闭原因未解决 这只是一个简单的注册/登录系统,但我不知道为什么它不起作用,我会在这里粘贴我的配置: 和我的函数.php: 我得到的错误是: 警告:mysqli_connect(): (HY000/1045):拒绝访问E:\ xampp \ htdocs \ true \ libs \ function . PHP第11行中的用户' root'@'localhost '(使用密码:NO)无法连

  • while循环开始之前的语句没有打印,并且从1开始没有打印循环中的值。相反,它从一个随机的大int开始打印。