bursa escort bursa escort beylikdüzü escort escort bayan afyon escort escort bayan istanbul escort mersin escort bayan escort kayseri bursa escort escort kayseri bursa escort ankara escort

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.

 <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.


Yazar : Emrah Kahraman

Bilgisayar Mühendisi

“ASP.NET Web Api Kullanımı 8 (Enabling Cross-Origin Requests)” için 4 Yorum

  1. Kürşat Can dedi ki:

    Merhaba Emrah bey,
    web.config içerisine ekleyelim dediğiniz kodlar görünmüyor o kısmı düzeltebilir misiniz. Ayrıca benim sorunum tarayıcada dotNetApi den getirdiğim verilerin telefonumda gelmemesi(tablonun get methoduna bile girmiyor) sizin gösterdiğiniz çözüm yolu bu sorunu çözer mi?

  2. Emrah Kahraman dedi ki:

    Bu yazıda anlattıklarım başka bir domaindan gelen istekler içindir, sizin sorununuz farklıdır diye düşünüyorum.

  3. Gökhan dedi ki:

    Merhaba, yazı için teşekkürler ancak WebApiConfig diye bir class yok, bu class ı kendimiz mi oluşturuyoruz yada normalde otomatik kendisi mi gelmeli? referansları ekledim ancak sonrasında tıkandım.

  4. Emrah Kahraman dedi ki:

    ASP.NET Web Api Kullanımı (Get Method) başlıklı yazıma bakabilirsiniz.

ASP.NET Web Api Kullanımı 8 (Enabling Cross-Origin Requests) Yazısı için Yorum Yapabilirsiniz

Sponsor
Alexa
Hakkımda
Bağlantılar