Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我需要在tomcat应用程序上启用CORS_Java_Angularjs_Tomcat_Cors - Fatal编程技术网

Java 为什么我需要在tomcat应用程序上启用CORS

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:

我有一个应用程序运行在Tomcat8服务器上,在一个域上 和同一域名上的Angular web应用程序。web应用程序使用tomcat应用程序,但如果不在web.xml中启用CORS过滤,web应用程序将抱怨跨源资源共享,即使它们都位于同一ip上

下面是我如何向tomcat应用程序发出js请求

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。我还将在多个浏览器中测试它,因为它们的严格程度往往有所不同。