http://localhost:8080/Home/Index
http://localhost:8080/api/Employess
Aynı domain ve port üzerinde gönderilen istekler cross domain değildirler, istedikleri gibi haberleşebilir. Ancak cross domainlerse isteklerimiz başarısız olacaktır.
Öncelikle cross domain oluşturan durumlara bakalım.
1- Port numarası değiştiği anda aynı domainde de olsa artık cross domaindir.
http://localhost:8080/Home/Index
http://localhost:8081/api/Employess
2- Farklı domainlerde olması zaten cross domaindir.
http://mysite.com/Home/Index
http://mysite.net/api/Employess
3- Farklı protokol olması da son olarak cross domaindir.
htpp://mysite.com/Home/Index
htpps://mysite.com/api/Employess
Bu durumlarda peki haberleşmeyi sağlamak için ne yapabiliriz?
1- Öncelikle nugetten Microsoft.AspNet.WebApi.CORS indireceğiz.
2- Sonra App_Start klasörü altındaki WebConfig.cs içinde
EnableCorsAttribute cors = new EnableCorsAttribute("izin verilecek adres","*","*");
/* * demek bütün controllerına ve bütün actionlarına izin ver anlamına gelir. */
config.EnableCors(cors);
Yazacağımız bu 2 satır kodla erişime izin vermiş oluruz.
Bir diğer yöntemse uygulayacağımız controller üzerine bir attribute ekleyebiliriz.
[EnableCors("izin verilecek adres","*","*")]