• 06-02-2014, 21:14:07
    #1
    Merhaba,

    C# ile yazdığım basit bir web servis var. Bu web servisi JavaScript ile çağırmak istiyorum ama bir türlü web servisten datayı alamadım.

    Web Servisim
    [WebMethod]
            public string ServisJson(string adi, string soyadi)
            {
                var data = new { Mesaj = "Hello", Diger = adi+ " " + soyadi };
    
                System.Web.Script.Serialization.JavaScriptSerializer js = new System.Web.Script.Serialization.JavaScriptSerializer();
    
                return js.Serialize(data);
            }
    Javascript kodu
    function CallPageMethod() {
                $.ajax({
                    type: "POST",
                    url: "http://localhost/mmm/MobilServices.asmx?op=ServisJson",
                    data: "{ adi: 'Aidy', soyadi: 'F' }",
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    success: function (data) {
                        var myData = JSON.parse(data.d);
                        alert("1");
                        alert(myData.Mesaj + " " + myData.Diger);
                    }
                });
                }
    Data hep null geliyor. Servis kendi pc'mde kurduğum iis de çalışıyor. Servisi içinde buton olan basit bi html sayfadan çağırmaya çalışıyorum. Ama bir türlü başarılı olamadım.
  • 07-02-2014, 22:38:38
    #2
    Koca r10'da yardım edebilecek kimse yok mu??
  • 09-02-2014, 18:33:34
    #3
    Üyeliği durduruldu
    Attığınız pm den dolayı C# bilgim olmamasına rağmen cevap yazıyorum, o kısmın doğru çalıştığını varsayıyorum.

    function CallPageMethod() {
                $.ajax({
                    type: "POST",
                    url: "http://localhost/mmm/MobilServices.asmx?op=ServisJson",
                    data: { adi: 'Aidy', soyadi: 'F' },
                    dataType: "json",
                    success: function (data) {
                        var myData = JSON.parse(data.d);
                        alert("1");
                        alert(myData.Mesaj + " " + myData.Diger);
                    }
                });
                }
    Yukarıdaki koddaki gereksiz bölümleri kaldırdım.


    Bu arada ajax sorgusu aynı domain altında çalışır.
    Yani xx.com dan yy.com adresine ajax sorgusu yapamazsınız veya bir subdomaine. ( cross domain ayarlamadıysanız )

    Localde çalışıp sunucuda çalışmıyorsa problem bu olabilir. Cross domain ajax sorguları için jsonp kullanmanız gerekmekte, onunla ilgili dökümanları veya örnekleri google da ararsanız bulabilirsiniz
  • 09-02-2014, 19:10:37
    #4
    İlginiz için teşekkür ederim.

    Webservis sorunsuz şekilde çalışıyor o konuda problem yok. Kodlar sunucuda değil local de çalışıyor. Servisim localhost da çalışıyor. index.html dosyasının içine yazdığım js koduyla da servisi çağırmaya çalışıyorum.

    Sizin yazdığınınız kodu denedim ama malesef çalışmadı. data null geliyor.
  • 09-02-2014, 19:12:29
    #5
    Üyeliği durduruldu
    munzur adlı üyeden alıntı: mesajı görüntüle
    İlginiz için teşekkür ederim.

    Webservis sorunsuz şekilde çalışıyor o konuda problem yok. Kodlar sunucuda değil local de çalışıyor. Servisim localhost da çalışıyor. index.html dosyasının içine yazdığım js koduyla da servisi çağırmaya çalışıyorum.

    Sizin yazdığınınız kodu denedim ama malesef çalışmadı. data null geliyor.
    Chrome developer tools daki network bölümünden yaptığınız isteği bulun, orada da gelen data yoksa c# tarafında sıkıntı vardır
  • 09-02-2014, 19:21:38
    #6
    Web Servisin parametrelerini girerek test ettiğim zaman
    <string>{"Mesaj":"Hello","Diger":"Adim Soyadim"}</string>

    Çıktısını alabiliyorum. Bu çıktıyı alıyorsam da servis düzgün çalışıyordur diye düşünüyorum.
  • 09-02-2014, 19:59:29
    #7
    Üyeliği durduruldu
    munzur adlı üyeden alıntı: mesajı görüntüle
    Web Servisin parametrelerini girerek test ettiğim zaman
    <string>{"Mesaj":"Hello","Diger":"Adim Soyadim"}</string>

    Çıktısını alabiliyorum. Bu çıktıyı alıyorsam da servis düzgün çalışıyordur diye düşünüyorum.
    Chrome dev tools ile bakın dönen dataya, yukarıda yazdığınız değer düzgün bir json değil zaten başındaki taglerden dolayı