2016-04-07 20 views
2

İlkbaharda yazılan web servisime küçük bir açısal uygulama bağlamayı deniyorum. Tomcat sunucum localhost: 8080 üzerinde çalışıyor ve grunt sunucum localhost: 11000 üzerinde çalışıyor. Bu, konsolda CORS hatalarına neden olur ve tarayıcımdan kalan API'ye istekte bulunamıyorum.Grunt Connect CORS hataları tarayıcıda

Bütün sabah internette bulabildiğim çok fazla gönderiye harcadım ve bu çalışmayı hala alamıyorum, sayfalarımın bana ulaşmasını sağlayabiliyorum, çünkü bazı örnekler bunu çalışmayı durdurdu bile.

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; 
        }          
       }   
      } 
     } 

bu sorunun üstesinden gelebilirsiniz beni nasıl söylemek mümkün olan var mı: Ben hırıltı sunucu olursa olsun ben sadece CORS hata almaya devam denedi ne ama yazıyor cmd penceresinde konsol günlüğünü görüyorum sorun?

cevap

1

Öyleyse yukarıdaki işe yarar Grunch yapılandırması gibi görünüyor. İlkbaharda bu çalışmayı yapmak için bazı değişiklikler yapmalıydım.

Genellikle arka uç API'sı istekleri java'dan gönderilir ve ön uç uygulaması da java'da yazılır ve istekler tarayıcıdan çıkarılır> tomcat \ spring \ java ve daha sonra bunu yapma gereği duymadım Bu uygulamanın arka uçta dinlenme çağrıları yapması gerekirse, bu sorunlara neden olmayan java'dan başlatılır.

Burada, başka bir kapsayıcıda çalışan bir açısal uygulamadan doğrudan yaylı API'leri doğrudan çağırmaya çalışırken bu sorunu duyabilen herkes için düzeltme düzeltmesinin bir örneği verilmiştir. Bunu yaparken, muhtemelen bu oldukça kolay kullanarak http proxy sabit gibi apache sunucunuza dağıtmak zorunda isteyen

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

Bu yalnızca gelişimi için de olup:

yapılandır yapılandırma sınıfları aşağıdaki selenyum testlerimi çalıştırdığımda, grunt sunucusunu başlatabilir ve açısal uygulamayı devreye alabilir ve otomatik oluşturma sürecim sırasında tüm entegrasyon testlerimi çalıştırabileceğim anlamına gelir.