Java 为什么我需要在tomcat应用程序上启用CORS
我有一个应用程序运行在Tomcat8服务器上,在一个域上 和同一域名上的Angular web应用程序。web应用程序使用tomcat应用程序,但如果不在web.xml中启用CORS过滤,web应用程序将抱怨跨源资源共享,即使它们都位于同一ip上 下面是我如何向tomcat应用程序发出js请求Java 为什么我需要在tomcat应用程序上启用CORS,java,angularjs,tomcat,cors,Java,Angularjs,Tomcat,Cors,我有一个应用程序运行在Tomcat8服务器上,在一个域上 和同一域名上的Angular web应用程序。web应用程序使用tomcat应用程序,但如果不在web.xml中启用CORS过滤,web应用程序将抱怨跨源资源共享,即使它们都位于同一ip上 下面是我如何向tomcat应用程序发出js请求 function getResources($http, url){ return $http({ method: 'GET', url:
function getResources($http, url){
return $http({
method: 'GET',
url: url,
headers: {'Accept': 'application/json'}
}).then(function (result) {
return result.data;
});
};
我也尝试过:数据类型:“jsonp”
错误如下所示:
XMLHttpRequest cannot load http://localhost:8080/APP/requestStuff.No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.
这对我来说很奇怪,因为如果源与我连接的位置相同,它就不应该是跨源的。尝试给它一个相对url,而不是规范url 这些站点还需要共享同一端口
此外,请确保您获得了正确的URL。例如,如果您将错误直接引用为源“web应用程序的IP”,则该错误将失败,因为该IP地址不是IP地址。跨源请求策略可在方案(例如http与https、域或端口)发生变化时应用。因此,在您的情况下,由于端口不同,您将需要CORS 我不想透露确切的IP,但是在本地主机上运行遇到了相同的问题,我改变了我的问题。在你的新问题中,你使用了不同的端口。那会失败的。我在8000端口运行一个python simpleHTTPserver,网页肯定会出现。只是请求导致了错误。但是您正试图从显示端口8080上托管的应用的浏览器连接到它?如果是这样,这就是问题所在,需要建立CORS。我还将在多个浏览器中测试它,因为它们的严格程度往往有所不同。