Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Jquery ile web servis çağırma

Arkadaşlar merhaba ASP net ile oluşturduğum çok basit bir web servisim var bu servisi Başka bir ASP net sayfasından çağırabiliyorum normal çalışıyor. Fakat Jquery ile bir türlü çağıramadım her seferinde error kısmına düşüyor baya bir araştırmama rağmen bulamadım yardımcı olabilirseniz sevinirim. Kodlarım aşağıda
Not :Web servis başka bir serverda çalışıyor.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
// To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line.
[System.Web.Script.Services.ScriptService]

public class Service : System.Web.Services.WebService
{
public Service () {
}

[WebMethod()]
public string SiparisDurumu(string v_sipno) {
return v_sipno;
}

[WebMethod()]
public string test()
{
return "Test";
}
}

//********************************************

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
</script>

<script type="text/javascript">

function btnTalep_onclick() {
$.ajax({
type: "POST",
url: "http://172.16.38.24:8015/SiparisTakipServisi.asmx/test",
data: "{}",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: true,
success: function(msg) {
$('#lblSonuc').html(msg.d);
},
error: function () {
alert('Hata oldu yine');
}
});
}

</script>


</head>
<body style="height: 45px; width: 960px">
<form id="form1" runat="server">
<div>
<input id="name" />
<span id="lblSonuc"></span>
<br />
<input id="btnTalep" type="button" value="Talep Et"
onclick="btnTalep_onclick()" />
</div>
</form>
</body>
</html>
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • ziyahan adlı üyenin fotoğrafı
    12 yıl önce yazılmış
    29 cevap - 2 soru
    Sorun şundan kaynaklanıyor. Aşağıdaki satırı değiştirmelisiniz.

    <input id="btnTalep" type="button" value="Talep Et"
    onclick="btnTalep_onclick()" />

    yerine;

    <input id="btnTalep" type="button" value="Talep Et"
    onclick="return false;btnTalep_onclick()" />
    • mur_nur adlı üyenin fotoğrafı mur_nur
      alert('Hata oldu yine'); satırı çalışıyor ekrana mesaj geliyor. Sizin dediğinizi de denedim ama artık hata mesajını da alamıyorum
      12 yıl önce yazılmış
    • ziyahan adlı üyenin fotoğrafı ziyahan
      http://172.16.38.24:8015/SiparisTakipServisi.asmx/test", bu web servisi ile uygulamanız aynı makine üzerinde mi? Bildiğim kadarıyla uzak bir adresteki sayfayı ajaxla yükleyemezseniz.
      12 yıl önce yazılmış
    • mur_nur adlı üyenin fotoğrafı mur_nur
      Aynı network'de olan başka bir server üzerinde bu web servis
      12 yıl önce yazılmış
    • ziyahan adlı üyenin fotoğrafı ziyahan
      Sorun bundan kaynaklı olabilir. Ajax uygulamasını da aynı web servera taşıyıp denemenizi öneririm.
      12 yıl önce yazılmış
    • mur_nur adlı üyenin fotoğrafı mur_nur
      Ama aynı web servisi ben asp net ile bir sayfa oluşturup kullandığımda normal bir şekilde çalışıyor sadece jquery ile olmuyor.
      12 yıl önce yazılmış
    • ziyahan adlı üyenin fotoğrafı ziyahan
      Bakın ASP.NET'in web servisi işleme olayı daha farklı, ASP.NET'te web servisi referanslar arasına eklenip, bir sınıf gibi gerçeklenir ve metodlarına doğrudan erişebilirsiniz. Oysa asenkron çağırımda bu olmaz. Uzaktaki bir sunucudan asenkron veri alıp işlemeniz güvenlik nedeniyle engellenmiş durumda zaten.
      Ben web servisinizde hata var demiyorum, işin o kısmına dair bir şey de yazmadım.
      12 yıl önce yazılmış
    • ziyahan adlı üyenin fotoğrafı ziyahan
      Kodunuzu aşağıdaki şekilde değiştirip son kez dener misiniz?

      </script>
      
      <script type="text/javascript">
      
      function btnTalep_onclick() {
      $.ajax({
      type: "POST",
      url: "http://172.16.38.24:8015/SiparisTakipServisi.asmx/test",
      data: "{}",
      contentType: "application/json; charset=utf-8",
      dataType: "json",
      async: true,
      success: function(msg) {
      $('#lblSonuc').html(msg.d);
      },
      error: function () {
      alert('Hata oldu yine');
      }
      });
      return false;
      }
      
      </script>
      

      
      </head>
      <body style="height: 45px; width: 960px">
      <form id="form1" onsubmit="btnTalep_onclick();"  runat="server">
      <div>
      <input id="name" />
      <span id="lblSonuc"></span>
      <br />
      <input id="btnTalep" type="submit" value="Talep Et"
       />
      </div>
      </form>
      </body>
      



      </html>
      12 yıl önce yazılmış
    • mur_nur adlı üyenin fotoğrafı mur_nur
      Anladım cevabınız için teşekkürler mantık olarak dışarıdan erişimleri kapatılmış olması doğru peki bunu kullanmanın bir yolu varmıdır. kullanımı nasıl olmalıdır bunun gibi farklı serverlarda çalışan datalarımıza ulaşmak için ne yapmalıyız sizce.
      12 yıl önce yazılmış
    • mur_nur adlı üyenin fotoğrafı mur_nur
      En son aşağıdaki şekilde denedim ama gene olmadı
      <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
      http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
      <html xmlns="http://www.w3.org/1999/xhtml">
      <head id="Head1" runat="server">
          <title></title>
          <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
          </script>
          <script type="text/javascript">
      
      
              function btnTalep_onclick() {
                  $.ajax({
                      type: "POST",
                      url: "http://172.16.38.24:8015/SiparisTakipServisi.asmx/test",
                      data: "{}",
                      contentType: "application/json; charset=utf-8",
                      dataType: "json",
                      async: true,
                      success: function (msg) { $('#lblSonuc').html(msg.d); },
                      error: function () { alert('Hata oldu yine'); }
                  });
      
                  return false;
      
              }
          </script>
      </head>
      <body style="height: 45px; width: 960px">
          <form id="form1" onsubmit="btnTalep_onclick();" runat="server">
          <div>
              <input id="name" />
              <span id="lblSonuc"></span>
              <br />
              <input id="btnTalep" type="submit" value="Talep Et" />
          </div>
          </form>
      </body>
      </html>
      
      
      12 yıl önce yazılmış
    • ziyahan adlı üyenin fotoğrafı ziyahan
      http://stackoverflow.com/questions/3015787/remote-ajax-call-in-jquery-click-function-doesnt-finish-before-going-to-next
      Yukarıdaki adreste önerileni tarif ettim. Ama benim fikrime göre asenkron çağrımlarda uzak bir sunucu kullanılamıyor. Yani yukarıda söylediklerim geçerli.
      12 yıl önce yazılmış
    • mur_nur adlı üyenin fotoğrafı mur_nur
      Cevaplarınız için teşekkürler.
      12 yıl önce yazılmış
    • psygnosis adlı üyenin fotoğrafı psygnosis
      kardeş .asmx dosyana sağ tıklayıp view markup bas.. CodeBehind="~/App_Code/senincsDosyan.asmx.cs" şeklinde düzenle kaydet ve sunucuda App_Code içine at..

      asmx dosyan iki tane .cs olanı App_Code içine normal asmx olanı App_Code un bulundugu dizine atıp bi denermisin
      12 yıl önce yazılmış