从HTML页面调用Web服务

时间:2014-03-29 19:35:08

标签: c# html asp.net web-services

我有一个网络服务,我想从HTML页面调用它。我在HTML页面中使用了这段代码:

function SendMail() {
         var requestdata = {};
     //    requestdata.Name = "Amar Prakash";
       //  var pdata = { "objRequestData": requestdata };

         $.ajax({
             type: "POST",
             data: JSON.stringify(pdata),
             url: "http://localhost:2345/WebService.asmx/Send_Mail",
             contentType: "application/json;charset=utf-8",
             dataType: "json",
             success: function (data) {
                 alert("SSSSSSSSSSSSSSSSSS");
             },
             error: function (xhr) {
                 //alert(xhr.responseText);
                 alert("error");
             }
         });
     }

我的网络服务代码

[WebMethod]
public void Send_Mail()
{
    try
    {
        string fromaddr = "frommail@gmail.com";
        string toaddr = "tomil@gmail.com";
        string bodytxt = "Body Message";
        string sub = "Subject Name";
        bodytxt = "Body Text";

        MailMessage mailreq = new MailMessage(fromaddr, toaddr);
        mailreq.IsBodyHtml = true;
        mailreq.Subject = sub;
        mailreq.Body = bodytxt;
        SmtpClient smtpreq = new SmtpClient();
        smtpreq.Send(mailreq);
    }
    catch (Exception ex)
    {
        ex.ToString();
    }
}

但此代码未输入Web服务功能代码。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:0)

您应该使用public void Send_Mail()属性标记ScriptMethod

[WebMethod]
[ScriptMethod(ResponseFormat = ResponseFormat.Json)]
public void Send_Mail()
{
    ...
}

也可能应该使用ScriptService属性标记孔服务类。

答案 1 :(得分:0)

您需要使用

在课程级别

[System.Web.Script.Services.ScriptService],在方法级别[ScriptMethod(ResponseFormat=ResponseFormat.Json)]

此属性允许您访问从Javascript代码调用的 .asmx 服务。