Ich versuche, einige WCF-Dienste aufzurufen, die ich von einer lokalen Webseite geschrieben habe, aber ich bekomme Querursprungsfehler links und rechts, aber nur wenn ich Versuche die Aufrufe von JavaScript.CORS-Header 'Access-Control-Allow-Origin fehlt
Ich habe seit Monaten versucht und versucht, dies ohne Glück zu lösen; Ich bin mit meinem Latein am Ende. Ich habe stundenlang mit der web.config, den IIS Response Headers der Site, unzähligen Blogs, anderen SO-Posts und enable-cors.org getüftelt, aber ich stoße immer noch auf eine Mauer.
Der JS-Code, der die WCF-Dienste Aufruf ist:
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();
Die Funktion C# für den WCF-Service:
[OperationContract, WebInvoke(UriTemplate = "/Bar/", Method = "GET")]
public string Bar() { return "Success!"; }
Das relevante Segment der Web.config für den WCF-Service:
<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>
Wie ich bereits sagte, haben HTTP-Anfragen aus anderen Sprachen keine Probleme. C# und ActionScript 3 funktionieren mit den gleichen WCF-Aufrufen, aber JS lässt mich nicht über diese Fehler hinwegkommen.
Weiß jemand, was passieren könnte?
I Methoden haben auf „POST, GET, OPTIONS "und Header zu" Content-Type "wie bei einem anderen Server, den wir haben, aber das Problem besteht immer noch. Ist das nicht auch richtig? – wmaynard