Ich muss CORS für meine Web-API aktivieren und kann momentan nicht auf Framework 4.5 aktualisieren. (Ich kenne System.Web.Http.Cors.EnableCorsAttribute.)
Ich habe versucht, meiner Web.config folgendes hinzuzufügen, um zu sehen, ob es funktioniert hat, aber nicht:
%Vor%Ich habe auch versucht, den Access-Control-Allow-Origin-Header manuell auf "*" durch Verwendung von System.Web.Http.Filters.ActionFilterAttribute (basierend auf diesem Post: Add eigenen Header zu allen Antworten in Web-API ) - aber das hat nicht geklappt Entweder wird die Anfrage abgelehnt, bevor sie zur Filterung der Aktion gelangt.
Also bin ich jetzt irgendwie festgefahren. Jede Hilfe ist willkommen.
Bearbeiten: Stellt sich heraus
%Vor%war die Antwort die ganze Zeit, ich muss vorher etwas falsch gemacht haben, als ich es getestet habe. Aber diese Lösung bedeutet, dass alle Aktionen CORS-fähig sind (was vorerst funktioniert).
POST, PUT, DELETE, usw. verwenden CORORS mit Vorlauf. Der Browser sendet eine OPTIONS-Anfrage. Dies liegt daran, dass der Browser zuerst prüft, ob serverside mit CORS umgehen kann oder nicht OPTIONS
request verwendet, wenn er erfolgreich ist, und dann die tatsächliche Anfrage PUT
oder POST
oder Delete
sendet. Da Sie keine Aktionsmethode haben, die OPTIONS handhabt, erhalten Sie eine 405. In ihrer einfachsten Form müssen Sie eine solche Aktionsmethode in Ihrem Controller implementieren.
Weitere Erklärung - Ссылка
%Vor% Hinweis: Diese Aktion reagiert nur auf OPTION
request. Daher müssen Sie die erforderliche Konfiguration zu web.config
hinzufügen, z. B. Access-Control-Allow-Origin = *
und Access-Control-Allow-Methods = POST,PUT,DELETE
.
Web API 2
hat CORS-Unterstützung, aber mit Web API 1 müssen Sie diesem Pfad folgen.
Ich hatte das Problem mit webAPI konfrontiert 1 Cross-Domain-Zugang endlich in der Lage, es zu beheben, werfen Sie einen Blick auf meinen Blog Ссылка
Cross-Code ist
%Vor%Tags und Links asp.net-mvc asp.net-web-api c# cors