AJAX를 사용하여 CS 페이지에있는 메소드를 호출하고 싶습니다.AJAX를 사용하여 CS 페이지에서 메서드를 호출하는 방법은 무엇입니까?
다음<!-- Name -->
<input type="text" name="name" id="name" required="required" class="form" placeholder="Name" />
<!-- Email -->
<input type="email" name="mail" id="mail" required="required" class="form" placeholder="Email" />
<!-- Subject -->
<input type="text" name="subject" id="subject" required="required" class="form" placeholder="Subject" />
<!-- Message -->
<textarea name="message" id="message" class="form textarea" placeholder="Message"></textarea>
<!-- Send Button -->
<button type="button" id="submit" name="submit" class="form-btn semibold">Send Message</button>
이
$(document).on("click", "#submit", function (e) {
$.ajax({
type: "POST",
url: "OakscrollWebService.cs/SendMail",
dataType: "json",
data: JSON.stringify({ name: $('#name').val(), email: $('#mail').val(), subject: $('#subject').val(), message: $('#message').val() }),
contentType: "application/json; charset=utf-8",
success: function (data) {
alert(data.d);
},
failure: function (data) {
alert("something went wrong");
//console.log(msg);
}
});
});
지금, 나는 ASMX 페이지를 추가 아약스 (웹 서비스를)입니다 :
여기 내 디자인 코드입니다. App_Code 폴더에있는 CS 파일에 대한 참조 호출을 제공 했으므로 여기에 코드가 있습니다. 여기
<%@ WebService Language="C#" CodeBehind="~/App_Code/OakscrollWebService.cs" Class="OakscrollWebService" %>
내가 여기에 (내가 이전을 표시하는 코드) 아약스를 사용하여 센드 메일 메서드를 호출하고 싶은 곳에서 CS 파일
이는 내용이다[WebMethod]
public static void SendMail(string name, string email, string subject, string message)
{
//Thread.Sleep(10000);
// Gmail Address from where you send the mail
var fromAddress = "[email protected]";
// any address where the email will be sending
var toAddress = email.Trim();
//Password of your gmail address
const string fromPassword = "*********";
// Passing the values and make a email formate to display
string sub = subject.Trim();
string body = "From: " + name.Trim() + "\n";
body += "Email: " + email.Trim() + "\n";
body += "Subject: " + subject.Trim() + "\n";
body += "Message: \n" + message.Trim() + "\n";
// smtp settings
var smtp = new System.Net.Mail.SmtpClient();
{
smtp.Host = "smtp.gmail.com";
smtp.Port = 587;
smtp.EnableSsl = true;
smtp.DeliveryMethod = System.Net.Mail.SmtpDeliveryMethod.Network;
smtp.Credentials = new NetworkCredential(fromAddress, fromPassword);
smtp.Timeout = 20000;
}
// Passing values to smtp object
smtp.Send(fromAddress, toAddress, sub, body);
}
CS 파일의 방법 코드 나는 아약스에 의해 sendmail 메쏘드를 사용했다. 그러나 "403 금지"및 "500 서버를 찾을 수 없습니다"와 같은 문제는 AJAX를 사용하여 sendmail 메소드를 호출 할 수 없습니다.
ajax 호출에서 디버거가'SendMail' cs 코드를 치는 중입니까? 한번 확인해보세요. 또한 cs 코드 안에 try {...} catch() {...}를 넣어 코드에 smtp 또는 일반적인 예외가 있는지 확인하십시오. –
sendmail 메소드가 디버그를 얻지 못합니다. 나는 그것에 디버그를했지만 전화를받지 못했습니다. –
어떻게이 문제를 해결 했습니까? –