2015-04-08 11 views
8

Angular ve asp.net API kullanıyorum. Karşılaştığım sorun: API koduna CORS eklediğimde, Internet Explorer'da çalışır, ancak Chrome ve Firefox'ta çalışmaz.'Access-Control-Allow-Origin' başlığı birden çok değer içeriyor '*, *', ancak yalnızca bir tanesine izin verilir

var CorsAttribute = new EnableCorsAttribute("* ","* ", "* "); 
     config.EnableCors(CorsAttribute); 

Ben: Ben eklendi WebApiConfigFile.cs dosyasında

<system.webServer> 
... 
<httpProtocol> 
    <customHeaders> 
     <!-- Adding the following custom HttpHeader will help prevent CORS errors --> 
     <add name="Access-Control-Allow-Origin" value="*" /> 
     <add name="Access-Control-Allow-Headers" value="Content-Type" /> 
    </customHeaders> 
</httpProtocol> 
... 
</system.webServer> 

:

XMLHttpRequest cannot load http://localhost:41028/api/values/abc . The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed. Origin ' http://localhost:44796 ' is therefore not allowed access.

Bu benim web.config dosyasına eklenmişti kod şudur: Burada

hatadır ilk kez CORS kullanarak. Herhangi bir yardım takdir edilecektir.

+2

Ya statik web.config'de veya dinamik olarak cors özellik ile başlıkları ekleyin. İkiside değil. –

+0

üzgünüm, yeni olduğumu söylediğim gibi .... örnek olarak açıklayabilir misiniz? i sorun olabilir yığın taşması – trigri

+0

bile yeni soru sorarken o yardım için teşekkür aldık ... :) – trigri

cevap

15

iki kez CORS'yi ayarlarken Bu cevap anlaşılacağı gibi Ayrıca, Application_Begin isteğine bazı kod eklemek gerekebilir . Bence sorun bu.

Lütfen herhangi bir CORS ayarını kaldırın. Ya da web.config'dan veya WebApiConfigFile.cs'dan kaldırabilirsiniz.

+0

Evet, benim. Benim de sorunum olan –

+0

. Teşekkürler! –

+0

evet ve ben de teşekkürler :) – dazziep

0

Bu sorunu anladım çünkü'u ConfigureOAuth'dan sonra koydum. Siparişi değiştirmek sorunu düzeltin.

  • Ben Origin var başında yasaktır 'Erişim Kontrol-Origin izin ver' \token çağrılırken,: Burada
    public void Configuration(IAppBuilder app) 
        { 
         HttpConfiguration config = new HttpConfiguration(); 
    
         app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 
         ConfigureOAuth(app); 
    
         WebApiConfig.Register(config); 
    
         // Used to put this line after ConfigureAuth(app), 
         // app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll); 
    
         app.UseWebApi(config); 
        } 
    

    benim durumumda detaydır.
  • LSO ben 'Erişim-Control-Allow-Origin' dahil customHeader, 'Erişim Kontrol-başlıkları izin ver', 'Erişim-Control-Allow-yöntemleri' ekleyin. \token isteğini düzeltdi.
  • Ancak, ayrıntı api çağrılırken 'Access-Control-Allow-Origin' kopyasına sahip oldum. this gibi bir çok öneri var, sadece sabitleyemiyorum.
İlgili konular