Die 'Access-Control-Allow-Origin' header mehrere Werte enthält '*, *', aber nur eine darf
Ich bin mit Winkel-und asp.net API. Das Problem, das ich mich vor: wenn ich hinzufügen CORS in der API-code, es funktioniert auf Internet Explorer, aber funktioniert nicht auf Google Chrome und Firefox.
Hier ist der Fehler:
XMLHttpRequest-Objekt kann nicht geladen werden http://localhost:41028/api/values/abc. Die
'Access-Control-Allow-Origin' header mehrere Werte enthält '*, *',
aber nur eine erlaubt ist. Herkunft 'http://localhost:44796' ist daher
nicht der Zugriff erlaubt.
Dies ist der code den ich Hinzugefügt, in der web.config
Datei:
<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>
In der WebApiConfigFile.cs
Datei, die ich aufgenommen:
var CorsAttribute = new EnableCorsAttribute("* ","* ", "* ");
config.EnableCors(CorsAttribute);
Ich bin mit CORS für die erste Zeit. Jede Hilfe wird geschätzt.
- Entweder fügen Sie überschriften, die statisch im web.config oder dynamisch mit der cors-Attribut. Nicht beide.
- sorry, können Sie erklären, wie gesagt ich bin neu.... mit Beispiel? ich bin auch neue Fragen auf stack overflow
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sind Sie CORS zweimal. Ich denke, dass ist das Problem.
Bitte entfernen Sie in einem CORS-Einstellungen. Sie können entweder entfernen Sie Sie aus
web.config
oder ausWebApiConfigFile.cs
.Chrome und Firefox verwenden, was man eine pre-flight-check über die "OPTIONEN" verb.
So, müssen Sie "OPTIONEN", um die zulässigen Methoden im web.config. Sie haben auch, fügen Sie einige code, um die Application_Begin Anfrage, wie diese Antwort suggeriert:
Umgang mit CORS-Preflight-Anforderungen an ASP.NET MVC-Aktionen
Hier sind einige Ressourcen, die für CORS:
IIS entführt CORS Preflight-OPTIONS-Anfrage
http://www.asp.net/web-api/overview/security/enabling-cross-origin-requests-in-web-api
Alle anderen Lösungen für webAPI. Diese Lösung ist geeignet, wenn du mit webservice - (.asmx) als API
Entfernen 'Access-Control-Allow-Origin" details aus, die entweder in die Globale.asax.cs-Datei begin_request Funktion oder im web.config. Da diese Einstellung muss nur an einem Ort
Ich habe dieses Problem, weil ich die
app.UseCors
nachConfigureOAuth
. Ändern, um das problem zu beheben.Hier ist das detail in meinem Fall:
\token
.\token
Anfrage.Ich hatte das gleiche Problem. Nachdem ich den exakten Domäne anstelle von * (siehe unten), es funktionierte für mich.
var CorsAttribute = new EnableCorsAttribute("https://www.mywebsite.com","", "");
config.EnableCors(CorsAttribute);