Ich habe nach diesem Beitrag versucht, aber ich bin ziemlich immer noch nicht da:Aktivieren von CORS mit WebAPI PUT/POST-Anfragen?
CORS support for PUT and DELETE with ASP.NET Web API
In meinem web.config habe ich folgendes:
<system.webServer>
<validation validateIntegratedModeConfiguration="false" />
<httpProtocol>
<customHeaders>
<!-- TODO: don't let anyone make requests - only approved clients -->
<add name="Access-Control-Allow-Origin" value="*" />
<add name="Access-Control-Allow-Headers" value="Content-Type" />
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS" />
</customHeaders>
</httpProtocol>
<handlers>
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" />
<remove name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" />
<remove name="ExtensionlessUrlHandler-Integrated-4.0" />
<remove name="WebDAV" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_32bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness32" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-ISAPI-4.0_64bit" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_isapi.dll" preCondition="classicMode,runtimeVersionv4.0,bitness64" responseBufferLimit="0" />
<add name="ExtensionlessUrlHandler-Integrated-4.0" path="*." verb="GET,HEAD,POST,DEBUG,PUT,DELETE,PATCH,OPTIONS" type="System.Web.Handlers.TransferRequestHandler" preCondition="integratedMode,runtimeVersionv4.0" />
</handlers>
<modules runAllManagedModulesForAllRequests="true">
<remove name="WebDAVModule"/>
</modules>
</system.webServer>
Aber in Chrom, wenn ich machen eine Anforderung POST erhalte ich den Fehler erlaubt nicht:
Meine Anfrage Blicke dies wie:
var request = $.ajax({
async: true,
url: apiEndpoint + 'api/login',
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: 'json'
})
apiEndpoint ist auf localhost, aber auf einem anderen Port - der Client und api-Projekte sind in verschiedenen Lösungen.
Die POST-Anfrage geht schließlich auf den Server, aber ich bekomme immer einen Fehler in Bezug auf OPTIONS und ich bekomme nie einen Cookie auf dem Client gespeichert.
verbrachte ich die letzten paar Stunden versucht CORS mit WebAPI Funktion zu erhalten:
https://aspnetwebstack.codeplex.com/wikipage?title=CORS%20support%20for%20ASP.NET%20Web%20API
Aber einige Montage Versionierung Probleme führten zu mir alles heraus zerren - hoffentlich gibt es eine einfachere Lösung.
Danke Badri. Das hat mich einen Schritt weiter getrieben! – SB2055
Wie würden Sie dies in der Steuerung implementieren? –
Imo POST erstellt keine Preflight-Anfrage –