0

我需要用 jsp 发送邮件,但页面本身不能重新加载。重新加载 POST 事件时,整个实现工作正常,但调整代码以使用 ajax 会破坏它。当触发ajax事件时,似乎没有执行index.jsp中的jsp-Code。我将展示一些片段:

索引.jsp

            <%
            String result = "=("; 
            String to = request.getParameter("rec_mail");
            if(to != null) {
                String from = request.getParameter("sendermail");
                String host = "mailserver";
                Properties properties = System.getProperties();
                properties.setProperty("mail.smtp.host", host);
                Session mailSession = Session.getDefaultInstance(properties);
                try{
                    MimeMessage message = new MimeMessage(mailSession);
                    message.setFrom(new InternetAddress(from));
                    message.addRecipient(Message.RecipientType.TO,
                          new InternetAddress(to));
                    message.setSubject("Feedback");
                    message.setText(request.getParameter("feedbackinput"));
                    Transport.send(message);
                    result = "Sucess!";
                }catch (MessagingException e) {
                    e.printStackTrace();
                    result = "failed!";
                }
            }

            out.println(request.getParameter("sendermail"));
            out.println(result);

            %>

 <input id="bsend" class="fbutton" type="submit" name="send" value="Send" onclick="loadContent()" style="float:right; width:18%; height:35%;" >

ajax.js

var xmlhttp
function loadContent() {
    xmlhttp=GetXmlHttpObject();
    if (xmlhttp==null)
    {
        alert ("Your browser does not support Ajax!");
        return;
    }

    var url="./index.jsp";

    xmlhttp.open("post",url,true);
    xmlhttp.send(null);
    xmlhttp.onreadystatechange=getOutput;
}
function getOutput()
{
  if (xmlhttp.readyState==4)
  {
    alert("Message sent!");
  }
}
function GetXmlHttpObject()
{
    if (window.XMLHttpRequest)
    {
       return new XMLHttpRequest();
    }
    if (window.ActiveXObject)
    {
       return new ActiveXObject("Microsoft.XMLHTTP");
    }
    return null;
}

(只显示相关部分,无处不在)

我收到警报消息,但没有发送邮件......我希望很清楚,我正在尝试做什么......

谢谢!

此致

4

1 回答 1

1

您是否还需要为 HTTP Post 设置标头

xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");

另外,不确定它是否会有所作为,但我会将“发布”到“发布”。

于 2013-09-19T12:21:34.583 回答