Aktivieren CORS für Web-API-1, .net 4.0
Muss ich aktivieren CORS für meine Web API und ich kann nicht ein upgrade auf Framework 4.5 im moment. (Ich weiß über das System.Web.Http.Cors.EnableCorsAttribute.)
Ich habe versucht, fügen Sie die folgende auf meiner Website.config, um zu sehen, ob es geklappt hat, aber es hat nicht:
<system.webServer>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*"/>
</customHeaders>
</httpProtocol>
Habe ich auch versucht, legen Sie die Access-Control-Allow-Origin-header "*" manuell durch die Nutzung von System.Web.Http.Filter.ActionFilterAttribute (basierend auf diesem Beitrag: Fügen Sie benutzerdefinierte header zu allen Antworten in die Web-API) - aber das hat nicht funktioniert entweder wenn der Antrag abgelehnt wird, bevor es auf die action-Filterung.
So, ich bin irgendwie stecken jetzt.. Jede Hilfe ist willkommen.
Edit: Stellt sich heraus,
<add name="Access-Control-Allow-Origin" value="*"/>
war die Antwort, alle zusammen, ich muss was falsch gemacht habe bisher, wenn ich es getestet habe. Aber diese Lösung bedeutet, dass alle Handlungen CORS aktiviert (was wird denn jetzt tun).
- möglich, Duplikat der Die angeforderte Ressource nicht unterstützt http-Methode 'GET'. Fehlercode 405
- Die akzeptierten Antworten in diesem thread zu verlangen scheint .NET Framework 4.5.
- eine Sache zu tun, befolgen Sie die genannten Schritte in der Antwort, und Sie können zu suchen .net 4 nuget-Paket zu machen, damit es funktioniert. Hinweis: ich habe dort beantwortet, damit ich nicht zu beantworten hier, ich meine nicht eine Kopie davon.
- stackoverflow.com/questions/22143378/... - das sagt CORS ist es nicht im WEB-API-1.- Noch meine Antwort zu!
- Danke, ich werde in diesem Blick.
Du musst angemeldet sein, um einen Kommentar abzugeben.
versuchen Sie, fügen Sie auch:
POST, PUT, DELETE, etc. verwenden pre-flighted CORS. Der browser sendet eine OPTIONS-Anfrage. Dies ist, weil der browser zuerst überprüft, ob serverseitig verarbeiten kann, CORS oder nicht mit
OPTIONS
Anfrage, wenn erfolgreich, dann sendet die eigentliche AnfragePUT
oderPOST
oderDelete
. Da Sie nicht eine action-Methode, mit OPTIONEN, erhalten Sie einen 405. In seiner einfachsten form, müssen Sie implementieren eine action-Methode, wie dies in Ihrer Steuerung.Mehr Erklärung - http://www.w3.org/TR/cors/#resource-preflight-requests
http://www.html5rocks.com/en/tutorials/cors/
Hinweis: Diese Aktion antwortet nur auf
OPTION
verlangen, also zusammen mit diesem müssen Sie die notwendigen configweb.config
wieAccess-Control-Allow-Origin = *
undAccess-Control-Allow-Methods = POST,PUT,DELETE
.Web API 2
hat CORS-Unterstützung, aber mit Web-API-1, Sie haben zu Folgen Sie diesem Pfad.Hatte ich angesichts der Menge Problem mit webAPI 1 Cross-domain-Zugriff endlich in der Lage, es zu beheben haben Sie einen Blick auf meine blog - http://keerthirb.blogspot.in/2017/08/making-cross-enable-for-webapi1.html
Cross code ist