繁体   English   中英

HTTP 使用SMTP Js提交表单后出现ERROR 405

[英]HTTP ERROR 405 after submitting a form using SMTP Js

我正在使用 smtp js 提交此表单。 表单提交和验证工作正常,但在将数据成功传递到邮件后,它不会重新加载页面。 它显示 HTTP ERROR 405。任何人都可以帮我解决这个问题吗?

这是 Html 部分。 最后一个 div 是隐藏的,因为我想将其用作弹出窗口,当邮件发送成功时它会出现。

HTML

        <form class="send-message row-start-1 col-start-1 col-end-4 w-[100%] md:w-[75%]" action="" id="" method="POST""  >
          <div class="mb-4">
            <input
              class="dark:bg-black bg-transparent border border-white w-full px-2 py-2 rounded text-sm text-white md:text-base"
              type="text"
              name="name"
              placeholder="Name"
              id="name"
              
            />
            <span id="nameError" class="text-red-400 text-xs md:text-sm"></span>
          </div>

          <div class="mb-4">
            <input
              class="dark:bg-black bg-transparent border border-white w-full px-2 py-2 rounded text-sm text-white md:text-base"
              type="text"
              name="email"
              id="email"
              placeholder="Email"
              
            />
            <span
              id="emailError"
              class="text-red-400 text-xs md:text-sm"
            ></span>
          </div>

          <div class="mb-4">
            <input
              class="dark:bg-black bg-transparent border border-white w-full px-2 py-2 rounded text-sm text-white md:text-base"
              type="text"
              name="subject"
              id="subject"
              
              placeholder="Subject"
            />
            <span
              id="subjectError"
              class="text-red-400 text-xs md:text-sm"
            ></span>
          </div>

          <div class="mb-4">
            <textarea
              class="dark:bg-black bg-transparent border border-white w-full h-28 px-2 py-2 rounded text-sm text-white md:text-base"
              name="message"
              id="message"
              cols="30"
              rows="10"
              
              placeholder="Message"
            ></textarea>
            <span
              id="messageError"
              class="text-red-400 text-xs md:text-sm"
            ></span>
          </div>

          <!-- send button starts here -->
          <div class="relative">
            <button onclick="return sendMail()"
              class="flex flex-row items-center justify-center gap-2 bg-[#f7f7f7] transition-all duration-300 ease-in-out drop-shadow-xl hover:bg-white hover:drop-shadow-2xl text-nav-color font-bold py-2 px-8 md:px-10 md:py-2 rounded"
            >
              <svg
                class="w-6 h-8"
                xmlns="http://www.w3.org/2000/svg"
                width="16"
                height="16"
                fill="currentColor"
                class="bi bi-send"
                viewBox="0 0 16 16"
              >
                <path
                  d="M15.854.146a.5.5 0 0 1 .11.54l-5.819 14.547a.75.75 0 0 1-1.329.124l-3.178-4.995L.643 7.184a.75.75 0 0 1 .124-1.33L15.314.037a.5.5 0 0 1 .54.11ZM6.636 10.07l2.761 4.338L14.13 2.576 6.636 10.07Zm6.787-8.201L1.591 6.602l4.339 2.76 7.494-7.493Z"
                />
              </svg>
              Send
            </button>
       
                <!-- success message     -->
                <div class="absolute top-0 left-0 hidden bg-green-100 rounded-md p-3  md:w-[50%]" id="success">
                  <svg
                      class="stroke-2 stroke-current text-green-600 h-8 w-8 mr-2 flex-shrink-0"
                      viewBox="0 0 24 24"
                      fill="none"
                      strokeLinecap="round"
                      strokeLinejoin="round"
                  >
                      <path d="M0 0h24v24H0z" stroke="none" />
                      <circle cx="12" cy="12" r="9" />
                      <path d="M9 12l2 2 4-4" />
                  </svg>
              
                  <div class="text-green-700">
                      <div class="font-bold text-xl">Message sent successfully.</div>
              
                      
                  </div>
              </div>
            </div>

        </form>

杰斯

function sendMail() {

    let inputName = document.getElementById("name").value;
    let inputEmail = document.getElementById("email").value;
    let inputSubject = document.getElementById("subject").value;
    let inputMessage = document.getElementById("message").value;


    let validName = validateName(inputName);
    let validEmail = validateEmail(inputEmail);
    let validSubject = validateSubject(inputSubject);
    let validMessage = validateMessage(inputMessage);
    

    if (validName != false && validEmail != false && validSubject != false && validMessage != false) {
        let messageBody = 'Name: ' + inputName + '<br>Email: ' + inputEmail + '<br>Subject: ' + inputSubject + '<br>Message: ' + inputMessage;

        Email.send({
            SecureToken:"XXXXXXXXXXXX",
            To : 'XXXXXXXXX@gmail.com',
            From : "XXXXXXXXXXX@gmail.com",
            Subject :  "New message on contact from " + inputName,
            Body : messageBody,
           
        }).then(
           
                showSuccess()
    
        )
return true;
    
    }

    else{
        
        return false;
    }


}



// showing success message
function showSuccess() {
    let successMessage = document.getElementById("success");
    successMessage.classList.remove("hidden");
    successMessage.classList.add("flex");

}

我已经找到了解决方案和这个问题背后的原因。 由于 HTML 文件不能接受 Post 请求,所以我不能写那个。 实际上,我不需要在我的 HTML 文件中使用它,因为我正在从 js 发送数据。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM