我创建了一个名为MailSerderWS.asmx
的网络服务,其代码在AppCode/MailSerderWS.cs
,在本地PC上工作正常,但我对其在生产中的使用有一些疑问:
第2项的代码:
$("#btnSendMail").click(function(){
$.ajax({
type: "POST",
url: "http://audiomedia.dev.asentechdev1.com/MailSenderWS.asmx/SendMail",
data: "{'sendermail':'aelectricwala52@gmail.com', 'type':'standalone app', 'body':'success'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg)
},
error: function(msg){
alert(msg.responseText);
}
});
})
提前致谢。
答案 0 :(得分:0)
我看到两个语法错误。试试这个:
$("#btnSendMail").click(function(){
$.ajax({
type: "POST",
url: "http://localhost:16189/MailSenderWS.asmx/SendMail",
data: "{'sendermail':'aelectricwala52@gmail.com', 'type':'standalone app', 'body':'success'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
alert(msg)
},
error: function(msg){
alert(msg);
}
});
});
前段时间我写了一篇关于asmx webservice方法的文章,并从Jquery调用它。这可能会对您有所帮助:http://www.tomot.de/en-us/article/8/asp.net/how-to-use-jquery-to-call-a-webservice-asmx-method
修改强>: 根据您的更新,我尝试按Ajax调用它,但这对我也不起作用。该服务似乎已正确部署,因为您可以在浏览器中调用该URL。我将您的服务添加为服务参考,称为您的方法,并使用Fiddler来捕获通信。
连接到服务器没有问题,但是服务的响应表明与您的电子邮件帐户相关的身份验证问题:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendMailResponse xmlns="http://tempuri.org/">
<SendMailResult>
Fail Reason: The SMTP server requires a secure connection or the client was not authenticated. The server response was: 5.7.0 Must issue a STARTTLS command first. sk1sm6949585pbc.0
</SendMailResult>
</SendMailResponse>
</soap:Body>
</soap:Envelope>
尝试在没有Web服务的情况下从本地计算机发送电子邮件,并确保您正常工作。之后重新部署,你应该准备好了 我还建议您更改网络服务的网址,因为现在您已经在网上发布了网站并且没有涉及身份验证,有人可能会滥用它。
<强> EDIT2 强>: 我会告诉你我是如何使用Fiddler的。首先,您需要下载并安装它。
创建一个新的.net应用程序(例如ConsoleApplication)。在Solution Explorer
中,右键单击项目,然后点击Add Service Reference
。使用网址http://audiomedia.dev.asentechdev1.com/MailSender.asmx
这会在您的项目中生成一些代码。
启动Fiddler并在ConsoleApplication中执行此代码(根据生成的名称,您需要调整此示例):
ServiceReference1.MailSenderSoapClient client = new ServiceReference1.MailSenderSoapClient();
client.SendMail();
在Fiddler内部,你会在左侧网站上看到网络会话。添加了一个包含您网址的新条目。点击它。在底部区域的右侧视线中,您将看到消息
响应已编码,可能需要在检查前进行解码。 点击此处进行转换。
如果您点击该消息并选择TextView TabPage,您将从您的服务中获得此结果:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<soap:Body>
<SendMailResponse xmlns="http://tempuri.org/">
<SendMailResult>Success</SendMailResult>
</SendMailResponse>
</soap:Body>
</soap:Envelope>