2016-04-07 133 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測試,我將能夠在我的自動構建過程開始繁重的服務器和部署的角度應用,並仍在運行我所有的集成測試。