2016-04-08 19 views
0

Yerel bir web sayfasından yazdığım bazı WCF hizmetlerini çağırmaya çalışıyorum, ancak çapraz kaynaklı hataları sol ve sağ alıyorum ancak yalnızca aramaları JavaScript'ten deneyin.CORS başlığı 'Erişim-Denetim-İzin-Kökeni eksik

Aylarca bunu denemeye çalışarak denemeye çalışıyorum; Benim aklımın sonu. Web.config ile saatlerce, sitenin IIS Yanıt Başlıkları, sayısız blog, diğer SO gönderileri ve enable-cors.org'la uğraştım ama hala bir tuğla duvara çarpıyorum.

WCF servisleri aradığını JS kodu:

var url = "http://(foo)/WCF.svc/Bar" 
var xhr = new XMLHttpRequest(); 
xhr.open('GET', url, false); 
xhr.onload = function() { 
    console.log(xhr.responseText); 
} 
xhr.send(); 

WCF Hizmeti için C# fonksiyonu:

[OperationContract, WebInvoke(UriTemplate = "/Bar/", Method = "GET")] 
public string Bar() { return "Success!"; } 

WCF Hizmet için Web.config ilgili segmenti:

<system.webServer> 
    <httpProtocol> 
     <customHeaders> 
      <add name="Access-Control-Allow-Origin" value="*" /> 
      <add name="Access-Control-Allow-Headers" value="*" /> 
      <add name="Access-Control-Allow-Methods" value="*" /> 
      <add name="Access-Control-Max-Age" value="1728000" /> 
     </customHeaders> 
    </httpProtocol> 
</system.webServer> 

Daha önce de söylediğim gibi, diğer dillerden gelen HTTP isteklerinde sorun yok. C# ve ActionScript 3 aynı WCF çağrılarıyla iyi çalışıyor, ancak JS bu hataları geçmeme izin vermiyor.

Neler olup bittiğini bilen var mı?

cevap

0

sorun, bu iki çizgi

 <add name="Access-Control-Allow-Headers" value="*" /> 
     <add name="Access-Control-Allow-Methods" value="*" /> 

* bu iki başlıklarını

spec ben "POST, GET için yöntemler kurdum here

+0

Oku için geçerli bir değer değildir ile OPTIONS "ve sahip olduğumuz başka bir sunucuya göre" İçerik Türü "başlıkları, ancak sorun hala devam ediyor. Bu da doğru değil mi? – wmaynard