C# asp.net Web服务(.asmx)

C# asp.net Web服务(.asmx),c#,ajax,soap,asmx,C#,Ajax,Soap,Asmx,在内部,Web服务使用soap在HTTP上工作。但是,当我们尝试访问web服务的[WebMethod]时,使用jQueryAjax如何在URL的基础上开始工作呢?SOAP是否仍然在jQueryAjax中扮演角色?如果是,怎么做?若否,原因为何?您可以使用下面的示例使事情变得简单 以下是来自asmx的代码: [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.Basi

在内部,Web服务使用soap在HTTP上工作。但是,当我们尝试访问web服务的
[WebMethod]
时,使用jQueryAjax如何在URL的基础上开始工作呢?SOAP是否仍然在jQueryAjax中扮演角色?如果是,怎么做?若否,原因为何?您可以使用下面的示例使事情变得简单

以下是来自asmx的代码:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class MyService : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {          
        return "Hello World";
    }
}

可以使用
AJAX
调用
WebMethods
,因为传输是
HTTP
。你可以在互联网上找到许多这样的例子:

SOAP
是有效负载的信封(具有一些附加功能)。是否在
WebMethod
中使用它取决于您自己

以下是如何在web应用程序项目中创建Hello World服务:

[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
[ScriptService]
public class WebService1 : System.Web.Services.WebService
{
    [WebMethod]
    public string HelloWorld()
    {
        return "Hello World";
    }
}
以下是使用jQuery的方法:

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.js"></script>

<script>
    console.log($.ajax);
    $.ajax({
        type: "POST",
        url: "http://localhost:55501/WebService1.asmx/HelloWorld",
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        success: function(response.d) {
            alert(response.d);
        }
    });
</script>
这将输出:

<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>

{"d":"Hello World"}

你好,世界
{“d”:“你好,世界”}

还有soap头如何与jquery一起工作ajax@AndriiLitvinov请不要使用
内联代码
来突出显示随机术语。@CodeCaster,您能再详细说明一下吗?或者提供wiki的链接?我认为突出显示技术方面的内容更容易阅读。@Andrii,例如:@CodeCaster,有道理,谢谢!嗨,安德烈谢谢你的回答,你能用一个例子解释一下吗。我知道如何使用jQueryAjax调用webmethod。我想知道当我们在应用程序(在web应用程序或控制台应用程序中)中使用asmx服务时,事情(soap消息的searlization)在内部是如何工作的,以及当我们从ajax调用webmethod时,事情是如何自动改变的。SOAP是HTTP上的通信协议。因此,客户机是另一个应用程序还是浏览器并不重要。@user7889160,我已经用示例更新了我的答案。非常感谢您对我的帮助。
<?xml version="1.0" encoding="utf-8"?>
<string xmlns="http://tempuri.org/">Hello World</string>

{"d":"Hello World"}