我在外部域上有网络服务,其中包含用于发送邮件的网络服务
我想使用 jquery ajax 调用跨域 web 服务,问题是我无法获得成功值,即使 web 服务已成功执行并且邮件已发送,它也会出错
我签入了萤火虫(Net Tab),在执行它时附加了?callback = [一些垃圾函数],并且因为它没有找到该函数,所以它没有显示正确的消息。
下面是我的网络方法[WebMethod]
[ScriptMethod(ResponseFormat=ResponseFormat.Json)]
public string SendMail()
{
string returnVal = string.Empty;
try
{
MailMessage message = new MailMessage();
message.From = new MailAddress("[from]");
message.To.Add("[to]");
message.Subject = "TEST";
message.Body = "TEST MAIL";
message.Priority = MailPriority.High;
SmtpClient client = new SmtpClient("smtp.gmail.com", 587);
client.EnableSsl = true;
client.Credentials = new NetworkCredential("[username]", "[password]");
client.Send(message);
returnVal = "[mycallback]({'status':'Success'})";
}
catch (System.Exception ex) { returnVal = "[mycallback]({'status':'Fail Reason: " + ex.Message + "'})"; }
return returnVal;
}
下面是我的ajax jquery调用
$(document).ready(function(){
$.ajax({
type:"GET",
url:"http://audiomedia.dev.asentechdev1.com/MailSender.asmx/SendMail",
dataType:"jsonp",
jsonpCallback: 'mycallback',
success: function(data){
alert(json.Parse(data));
},
error: function (data) {
alert("Error: " + data.responseText);
}
});
function mycallback(data){
alert("CallBack: " + JSON.stringify(data));
}
});
通过更改返回值并添加回调,我得到了来自服务器的回复,
但即使在成功发送邮件之后,它仍然会进入错误回调。谁能告诉我如何格式化成功消息。