ASP.NET Web Servise Erişim İzni
Merhabalar arkadaşlar,
İonic framework kullanarak basit bir mobil uygulama yapıyordum (Kendimi geliştirmek amacıyla) bu uygulamada internet üstünde sql veritabanıyla bağlantı kurmaya çalıştım. ajax kodunu ve webservisi yazdım test ettim çalışıyordu. Ancak ajax kodunu ionic frameworke yazıp bilgileri çekmeye çalıştığımda hata aldım. Muhtemelen sizde tarayıcınızn konsolunda aşağıdaki hatayı göreceksiniz
Araştırmalarım sonucu öğrendim web servise yalnızca aynı domain içinde bulunan bir dosyadan istek gönderirsek çalışıyormuş . Örnekle anlatıcak olursak
mustafa.zenbil.com(web servisin çalıştığı domain) — mustafa.zenbil.com(istek gönderen sayfa) / çalışır
mustafa.zenbil.com(web servisin çalıştığı domain) — zenbil.com(istek gönderen sayfa ) / çalışmaz
mustafa.zenbil.com(web servisin çalıştığı domain) — mobil uygulama(istek gönderen) / çalışmaz
mobil uygulamadan yada başka domainde çalışan bir siteden web servise erişebilmek için gelen isteklere izin vermemiz lazım . Web Servisi CORS destekli hale getirebiliriz ancak bu biraz daha teferruatlı bir iş bununla ilgili kaynakları isterseniz internette bulabilirsiniz . Aşağıda verdiğim kodu global.asax dosyasına eklediğinizde nereden istek gönderirseniz gönderin web servisinize erişebileceksiniz .
protected void Application_BeginRequest(object sender, EventArgs e)
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Origin", "*");
if (HttpContext.Current.Request.HttpMethod == "OPTIONS")
{
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Methods", "GET, POST");
HttpContext.Current.Response.AddHeader("Access-Control-Allow-Headers", "Content-Type");
HttpContext.Current.Response.End();
}
}