It can accept soap 1.1, 1.2 - no extra code on your part
It can accept a rest call - even json data - no extra code on your part
It can accept a plane jane URL (again rest) call - no extra code on your part
<WebMethod()>
Public Function GetName(FirstName As String, LastName As String) As String
Dim sResult As String = ""
sResult = FirstName & " " & LastName
Return sResult
End Function
以上是非常简单的。 因此,您可以使用jQuery,并通过post调用此方法,如下所示:
<asp:Button ID="cSoap" runat="server" Text="Soap Example"
OnClientClick="webcalltest();return false" />
<script>
function webcalltest() {
var First = 'Albert'
var Last = 'Kallal'
var url = '../WebService1.asmx/GetName'
$.ajax({
type: "POST",
url: url,
dataType: "json",
data: JSON.stringify({ FirstName: First, LastName: Last }),
contentType: "application/json; charset=utf-8",
success: function (msg) {
alert(msg.d)
},
error: function (msg) {
alert("Failed: " + msg.status + ": " + msg.statusText);
}
});
<asp:Button ID="Button2" runat="server" Text="Soap Example"
OnClientClick="webtest2();return false" />
<script>
function webtest2() {
var First = 'Albert'
var Last = 'Kallal'
var url = '../WebService1.asmx/GetName?FirstName=' + First + '&LastName=' + Last
$.get(url, function (data, status) {
alert($(data).find('string').text())
alert("Data: " + data + "\nStatus: " + status);
})
}
</script>
1条答案
按热度按时间gpnt7bae1#
您不仅可以做到这一点,而且事实上,如果您在.net中创建一个web方法,就可以开箱即用:
因此,实际上,您得到了以上所有3个--实际上,以上算4个,因为您 AJAX 调用可以使用(data)或URL来传递信息。
比如,我添加一个我创建的Web服务页面,如下所示:
请注意,您不必创建一个Web服务页面,您可以将一个函数(返回值)放入一个现有页面中,或者将一个子函数放入该页面中。只要您使用WebMethod()将函数/子函数绑定到该页面中,就可以开始了。
因此,在上面的页面中,我们添加一个简单的函数。它将接受参数FirstName和LastName,并返回全名。
因此,我们在上面的Web服务页面中有以下代码:
以上是非常简单的。
因此,您可以使用jQuery,并通过post调用此方法,如下所示:
如前所述,该web方法也将接受soap调用。
你甚至可以跳过标题(在上面的帖子中),并抛出一个100%平面jane REST调用-只是URL,这样说:
因此,在上面的代码中,我们只使用了rest调用的URL。(没有设置任何头,甚至没有设置soap xml记录)。因此,请记住,即使是旧的遗留soap方法,在大多数情况下也可以被传递并使用JSON数据-通常情况下,您不必重写甚至更改Web方法。
如上所示,您可以只向URL提供参数,而根本不传递任何头-更不用说SOAP头了。