AJAX - JSP 未在开机自检时执行

AJAX - JSP not executed on POST

本文关键字:开机自检 执行 JSP AJAX      更新时间:2023-09-26

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

索引.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%;" >

阿贾克斯.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;
}

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

我收到警报消息,但没有发送邮件...我希望清楚,我想做什么..

谢谢!

此致敬意

你不需要为HTTP帖子设置一个标题吗

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

另外,不确定它是否会有所作为,但我会将"发布"设置为"POST"。