2016-04-05 15 views
0

soapService.aspx adlı C# (localhost'ta barındırılan) oluşturulan bir SOAP web hizmeti var. DisplayClass (String id, String theDate) olarak adlandırılan bir yöntemi döndürür. Bu, jsonSOAP webservice, 2 parametre gönderen jquery ajax kullanarak bir yönteme çağrı, bir döngüdeki yanıtları nasıl yakalayacağınız

 

[{"lesson_id":2,"customer_id":4,"instructor_id":8,"dance_style_id":2,"hourly_rate":20,"lesson_time":"Afternoon","lesson_date":"03/12/2015","start_time":"11:22","end_time":"14:22 ","notes":"test test","payment_status":0,"status":0,"lesson_slot":null,"duration":3},{"lesson_id":3,"customer_id":4,"instructor_id":8,"dance_style_id":2,"hourly_rate":20,"lesson_time":"Afternoon","lesson_date":"03/12/2015","start_time":null,"end_time":null,"notes":null,"payment_status":0,"status":0,"lesson_slot":null,"duration":3},{"lesson_id":4,"customer_id":4,"instructor_id":8,"dance_style_id":2,"hourly_rate":20,"lesson_time":"Afternoon","lesson_date":"03/12/2015","start_time":null,"end_time":null,"notes":null,"payment_status":0,"status":0,"lesson_slot":null,"duration":3}] 

aşağıdakileri döndürür: Web hizmeti açıklama sayfasında verilen web hizmeti çağırma yöntemini kullanarak bunu buldum.

ajax kullanarak yanıtı yakalamak istiyorum.

Şimdiye kadar yazdığım bu

 
$(document).ready(function() { 

    function displayClass() { 
     var instructorInputID = $('#instructorIdText').val(); 
     var instructorInputDate = $('#instructordateText').val(); 
     //send this id to web service 

     $.ajax({ 

      url: "http://localhost/soapService.asmx/displayClasses", 
      type: POST, 
      dataType:"json", 
      data:instructorInput, 
      contentType:"application/json; charset:utf-8", 

      success:function(msg){ 

       //process the msg 

      } 


     }); 

    } 

}); 

1) nasıl ben bir tablodaki tüm bu json verilerini görüntülemek nasıl geçen parametreler 2) tarafından web hizmeti yöntemi çağırmak mı?

Edit yardım edin: Güvenilir THis

 
XMLHttpRequest cannot load http://localhost:18324/soapService.asmx/displayClasses. Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:17182' is therefore not allowed access.
EDIT Two : 
complete code : Still Error.. msg not defined 
<pre> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script> 
<script> 
$(document).ready(function() { 

$("#findClassBtn").click(function() { 

displayClass(); 
}); 

function onSuccess(msg) { 
$.each(msg, function(i, item) { 
var tds = ""; 
$.each(item, function(i, item) { 
tds += "<td>" + item + "</td>"; 
}); 
$('#table').append("<tr>" + tds + "</tr>"); 
}); 
} 

function displayClass() { 
var instructorInputID = $('#instructorIdText').val(); 
var instructorInputDate = $('#instructordateText').val(); 
//send this id to web service 
$.ajax({ 
url: "soapService.asmx/displayClasses", 
type: "POST", 
dataType:"json", 
data: { 
'id': instructorInputID, 
'theDate': instructorInputDate 
}, 
contentType: "application/json; charset:utf-8", 
success: onSuccess(msg) 
}); 
} 

</script> 
</head> 
<body> 
<form id="form1" runat="server"> 
<div> 
</div> 
<asp:Label ID="Label1" runat="server" Text="Add Your Id"></asp:Label> 
<p> 
<asp:TextBox ID="instructorIdText" runat="server"></asp:TextBox> 
</p> 
<asp:Label ID="Label2" runat="server" Text="Add date (dd/mm/yyyy)"></asp:Label> 
<p> 
<asp:TextBox ID="instructordateText" runat="server"></asp:TextBox> 
</p> 
<asp:Button ID="findClassBtn" runat="server" OnClick="findClassBtn_Click" Text="Find Classes" /> 
<p> 
<asp:Label ID="Label3" runat="server" Text="Label"></asp:Label> 
</p> 
</form> 
<table id="table"> 
</table> 
<pre> 

Error: msg is not defined. 
+0

_data_ size çalıştı ben konsolundan olsun yanıttır

 data: "{'id': '" + instructorInputID + "','theDate': '" + instructorInputDate + "'}", 

göndermek için dize, json nesnesini değil – Romario

+0

cevabımı düzelttim. – Romario

cevap

0

$(document).ready(function() { 
 

 
    function displayClass() { 
 
     var instructorInputID = $('#instructorIdText').val(); 
 
     var instructorInputDate = $('#instructordateText').val(); 
 
     //send this id to web service 
 

 
     $.ajax({ 
 

 
      url: "http://localhost/soapService.asmx/displayClasses", 
 
      type: POST, 
 
      dataType:"json", 
 
      data: { 
 
       'id': instructorInputID, 
 
       'theDate': instructorInputDate 
 
      }, 
 
      contentType: "application/json; charset:utf-8", 
 

 
      success: function (msg) { 
 
       $.each(msg, function(i, item) { 
 
       var tds = ""; 
 
       $.each(item, function(i, item) { 
 
        tds += "<td>" + item + "</td>"; 
 
       }); 
 
       $('#table').append("<tr>" + tds + "</tr>"); 
 
       }); 
 
      } 
 
     }); 
 
    } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="table"> 
 
</table>

+0

Kod eklendi. Dahili 500 hata veriyor. Webservice ASPX'in yeri localhost üzerindedir ve istemci kodu da localhost üzerindedir. Bu soruna neden oluyor? –

+0

@NurulAlamAnik Bu hata? 'XMLHttpRequest, http: // localhost: 18324/soapService.asmx/displayClasses öğesini yükleyemez. Ön kontrol isteğine yanıt, erişim denetimi kontrolünden geçmez: İstenen kaynağa 'Erişim-Kontrol-İzin-Kökeni' başlığı yok. Kökeni 'http: // localhost: 17182' erişimine izin verilmiyor ' – Romario

+0

@' http: // localhost: 17182 'den 'http: // localhost: 18324/adresine istek göndermeye çalışıyorsunuz. ..'. Bu çapraz kaynaklı istek. Bu http://stackoverflow.com/questions/20035101/no-access-control-allow-origin-header-is-present-on-the-requested-resource adresine bakın. – Romario

İlgili konular