我有一个网络服务,我想从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服务功能代码。
任何帮助都将不胜感激。
答案 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 服务。