jQuery AJAX url到PHP文件不起作用

时间:2018-01-12 05:52:01

标签: javascript php jquery ajax

在我的网站上,我有一个正常的联系表格,您可以在其中输入您的姓名,电子邮件和信息。

对于此表单,我有script.js,用于证明用户输入是否正确和完整。如果一切正常,AJAX来电应指向form-mail.php,我会将请求从用户发送给所有者。

script.jsform-mail.php有效,但我不知道AJAX电话中的错误?

if (sum == 0) {
    document.getElementById("name").style.borderColor = "green";
    document.getElementById("email").style.borderColor = "green";
    document.getElementById("nachricht").style.borderColor = "green";

    $.ajax({
        type: "POST",
        url: "mailform/form-mail.php",
        data: $("#myForm").serialize(),
        beforeSend: function() {$("#myForm").css({"opacity": "0.2"})}
    }).done(function(msg) {
        $("#emailform").fadeOut(1000);
        setTimeout(function () {
            $("#myForm").append('<p id=\"adder-content\" style=\"display:block;width:100%;margin:0 auto;padding-top: 3em;text-align:center;color:green\"><span>' + msg + '</span></p>').css({"opacity": "1"});}, 1000);
    });

    e.preventDefault();
    window.location.href = "http://www.just.a.test";
}

我在其他两个项目中使用了这个代码并且它有效,但是从昨天开始就出现了问题。

2 个答案:

答案 0 :(得分:1)

我认为问题在于

window.location.href = "http://www.just.a.test";

在完成ajax调用之前重定向。将其删除或将其放在ajax调用的完成部分。

这应该有效

if (sum == 0) {
        document.getElementById("name").style.borderColor = "green";
        document.getElementById("email").style.borderColor = "green";
        document.getElementById("nachricht").style.borderColor = "green";
      $.ajax({
        type: "POST",
        url: "mailform/form-mail.php",
        data: $("#myForm").serialize(),
        beforeSend: function() {$("#myForm").css({"opacity": "0.2"})}
      })
        .done(function(msg) {
          $("#emailform").fadeOut(1000);
          setTimeout(function () {
            $("#myForm").append('<p id=\"adder-content\" style=\"display:block;width:100%;margin:0 auto;padding-top: 3em;text-align:center;color:green\"><span>' + msg + '</span></p>').css({"opacity": "1"});
            window.location.href = "http://www.just.a.test";
          }, 1000);

        });
        e.preventDefault();
        // window.location.href = "http://www.just.a.test";
};

答案 1 :(得分:0)

试试这个

$.ajax({
    url: 'mailform/form-mail.php',
    type: 'POST',
    data: {data:data},
    before:function(){
       $("#myForm").css({"opacity": "0.2"});
    }
    success:function(response){ 
        console.log(response);
    }
});