Ben bu yazı şu denedim ama oldukça hala orada değilim: Benim web.config içindeWebAPI PUT/POST istekleri ile CORS'i etkinleştirme?
CORS support for PUT and DELETE with ASP.NET Web API
Ben şu var:
<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>
Ama chrome ben yaptığınızda
Benim isteği görünüyor: bir POST isteği ben izin verilmiyor hatası alıyorum Böyle:
var request = $.ajax({
async: true,
url: apiEndpoint + 'api/login',
type: 'POST',
data: JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType: 'json'
})
apiEndpoint localhost üzerinde ancak farklı bir port üzerinde - istemci ve API projeleri farklı çözümler vardır.
POST isteği sonuçta sunucuya doğru gidiyor, ancak her zaman OPTIONS ile ilgili bir hata alıyorum ve bu nedenle istemciye hiçbir zaman bir çerez alamıyorum.
Ben WebAPI çalışma ile CORS'yi almaya çalışırken son birkaç saat geçirdim:https://aspnetwebstack.codeplex.com/wikipage?title=CORS%20support%20for%20ASP.NET%20Web%20API
Ancak bazı montaj sürüm sorunları bana her şeyi dışarı Kopyalama yol açtı - umarım daha basit bir çözüm var.
Teşekkür ederim Badri. Bu beni bir adım öteye itti! – SB2055
Bunu denetleyicide nasıl uygularsınız? –
Imo POST ön kontrol isteği yaratmıyor –