2016-04-07 91 views
2

咕噜连接CORS错误,我想一个小角应用程序连接到我写在春天休息web服务。我的Tomcat服务器是在本地主机上运行:8080,我的呼噜声服务器在本地主机上运行:11000。这会在控制台中导致CORS错误,并且无法从我的浏览器向其他API请求。在浏览器

我花了整个上午都经历几乎文章中,我可以在网上找到,我仍然不能得到这个工作,我能得到我的页面上投放到我现在的一些例子甚至停止工作这一点。我看到在繁重的服务器正在写,但无论怎样我都试过我只是不断收到CORS错误cmd窗口控制台日志:

connect: { 
      livereload: { 
       options: { 
        port: 11000, 
        hostname: 'localhost', 
        open: false,          
        middleware: function(connect, options, middlewares) {      
         middlewares.unshift(function(req, res, next) { 
          console.log('***** ADDING HEADERS *****'); 
          res.setHeader('Access-Control-Allow-Origin', '*'); 
          res.setHeader('Access-Control-Allow-Credentials', true); 
          res.setHeader("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept"); 
          res.setHeader('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); 
          next(); 
         }); 

         return middlewares; 
        }          
       }   
      } 
     } 

有没有人能告诉我怎样才能解决这个问题问题?

回答

1

好了,所以它看起来像繁重的配置上面不实际工作。春季我必须做一些修改才能实现这个目标。

我从来没有这样做过,因为通常后端API的请求是从java发送的,前端应用程序也是用java编写的,请求从浏览器>> tomcat \ spring \ java发送,然后如果这个应用程序需要对后端进行其他调用,那么它将从java启动,这不会导致这些问题。

反正这里是任何人试图直接从一个不同的容器中运行的应用程序角度调用API休息的书面春季时可能会修复此问题的一个例子。

配置在配置类如下:

@Bean 
public WebMvcConfigurer corsConfigurer() { 
    return new WebMvcConfigurerAdapter() { 
     @Override 
     public void addCorsMappings(CorsRegistry registry) { 
      registry.addMapping("/calculator/*").allowedOrigins("http://localhost:11000"); 
     } 
    }; 
} 

这也是仅用于开发,而不是希望有部署到Apache网络服务器,因为我很可能已经解决了这个问题很容易使用HTTP代理,这样做是指当我运行Selenium测试,我将能够在我的自动构建过程开始繁重的服务器和部署的角度应用,并仍在运行我所有的集成测试。