SOAP webservice使用jquery ajax调用方法,该方法发送2个参数,如何在循环中捕获响应

时间:2016-04-05 11:19:17

标签: ajax soap

我在c#(托管在localhost上)创建了一个名为soapService.aspx的SOAP Web服务。它有一个名为displayClass的方法(String id,String theDate) 它返回。这将返回以下json


[{"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}]

我发现这是使用Web服务描述页面上给出的Web服务调用方法。

我想使用ajax捕获响应。

到目前为止我写了这个

$(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)如何通过传递参数来调用Web服务方法 2)如何在表格中显示所有这些json数据?请帮忙

编辑:尝试发布

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

这是我从控制台获得的回复

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. 

1 个答案:

答案 0 :(得分:0)

&#13;
&#13;
$(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>");
              });
            }
        });
    }
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table id="table">
</table>
&#13;
&#13;
&#13;