у меня есть веб-сервис на внешнем домене, который содержит веб-сервис для отправки писем
I want to call cross-domain web-service using jquery ajax, the problem is i could not get the success value, it goes to error even if webservice has successfully executed and mail has been sent
я проверил в firebug (вкладка Net), при выполнении добавляется ?callback=[какая-то ненужная функция], и поскольку она не находит эту функцию, она не отображает правильное сообщение.
below is my webmethod[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));
}
});
с изменением возвращаемого значения и добавлением обратного вызова я получаю ниже ответ с сервера
, но все равно он переходит в ошибка обратного вызова даже после успешной отправки почты. может ли кто-нибудь сказать мне, как можно отформатировать сообщение об успехе.