ASP.NET Web Api Kullanımı 8 (Enabling Cross-Origin Requests)

Başka bir domainden Ajax request yapılırken tarayıcı güvenlik gereği sayfayı engeller. Bu kısıtlamaya same-origin policy denir. Ancak Web Api ile bazen başka domainlerden request yapmak gerekebilir.
Cross Origin Resource Sharing (CORS), Same-origin policy kısıtlamasını ortadan kaldırıp başka bir domainden request yapmamızı sağlayan W3C standartıdır.
CORS kullanarak bazı cross-origin requestlere izin verilirken diğer istekler engellenir. Bu yazımda CORS kullanımını nasıl aktif yaparız ondan bahsedeceğim.

Visual Studio 2012 de Tools -> Library Package Manager altındaki Package Manager Console butonuna basalım. Visual Studionun alt tarafında console kodu yazmamız için PM> şeklinde alan açılmış olmalıdır.

İlk olarak aşağıdaki kodu yazıp projectName kısmına proje adını yazalım ve entera basalım. Cors işlemleri için gerekli packageları kuralım.
Install-Package Microsoft.AspNet.WebApi.Cors -pre -project projectName

Şimdi aşağıdaki kodu çalıştıralım.
Install-Package Microsoft.AspNet.WebApi -IncludePrerelease

WebApiConfig classı içindeki Register metoduna

configuration.EnableCors();

kodunu ekleyelim.

web.config dosyasında tagleri içine aşağıdaki kodları ekleyelim.

[code lang=”xml”]
<httpprotocol>
<customheaders>
<add name="Access-Control-Allow-Origin" value="*"></add>
<add name="Access-Control-Allow-Headers" value="Content-Type"></add>
<add name="Access-Control-Allow-Methods" value="GET, POST, PUT, DELETE, OPTIONS"></add>
</customheaders>
</httpprotocol>

Artık projemizi çalıştırıp başka bir MVC projesinden bu projenin Controller methodlarına ajax request yapıp cevap alabiliriz.

« »