当 Cors 已经设置时,运行 2 个服务器然后无法访问资源
Posted
技术标签:
【中文标题】当 Cors 已经设置时,运行 2 个服务器然后无法访问资源【英文标题】:Running 2 Server Then Cannot Access Resource When Cors Already Set 【发布时间】:2018-12-11 11:12:00 【问题描述】:我在 1 台 PC 中使用 2 台服务器,并且服务已经在运行
服务器 1: - 使用 Java Spring Boot 充分休息 - IP 本地主机:8098 - 像这样的源(抱歉不是完整的代码)
@CrossOrigin(origins = "http://10.100.0.207","http://localhost") @RequestMapping(value = "/getfiles", method = RequestMethod.GET, produces = "application/json")
public Map<String, ArrayList<String>> getFiles()
return fullContent;
服务器 2: - 使用网络服务 xampp - 文件名 testangular.html - IP 本地主机 - 像这样的源(抱歉不是完整的代码)
<div ng-controller="getFiles">
<ul ng-repeat="x in getdata.files">
<li>x</li>
</ul></div> app.controller('getFiles', function($scope, $http)
$http.get("http://localhost:8098/getfiles").then(function (response)
$scope.getdata = response.data;
);
);
两个服务在我的本地 PC 中运行成功,http://localhost/testangular.html,因为我在 java 中设置了 Cors
@CrossOrigin(origins = "http://10.100.0.207","http://localhost")
现在我用相同的 Wifi 连接了 2 台 PC,并使用 http://10.100.0.207/testangular.html 从不同的 PC 运行,我无法从服务器 1(RestFull)获取数据,但是当我在 PC 服务器中运行 http://10.100.0.207/testangular.html 时,我得到了所有数据
10.100.0.207 是我的本地 ip wifi,其中安装了 2 个服务
谁能解释为什么我无法从服务器 1 获取数据
【问题讨论】:
【参考方案1】:查看您的配置,您缺少origins
中的端口(origins = "http://10.100.0.207:8098","http://localhost:8098"))您也可以只做所有域默认@CrossOrigin
【讨论】:
对不起,先生,我编辑问题我无法从服务器 2(调用 api)中的服务器 1(我的 java restfull)获取数据是成功的 您是否对$http.get("http://localhost:8098/getfiles")
进行了硬编码,因为这只适用于运行http://localhost:8098/getfiles
的一台电脑
是的,先生,我明白了,谢谢,我改成 10.100.0.207:8098以上是关于当 Cors 已经设置时,运行 2 个服务器然后无法访问资源的主要内容,如果未能解决你的问题,请参考以下文章