PHP不读取我的Ajax帖子.没有错误,只是空白文件


PHP is not reading my Ajax post. No errors, just blank file

我知道这只是一个简单的post到php文件通过Ajax。这是我以前做过的事情,但这次我肯定遗漏了什么。我不能弄清楚为什么我的PHP文件不会读取或回任何张贴的数据。当PHP代码与表单在同一个文件中时,它可以正常工作,但是当我将PHP文件移动到外部源时,它就停止工作了。所有的数据都显示在header中,但是没有被读取。

请求负载

name=Form+Name&email=myemail%40email.com&tel=2345557777&web=http%3A%2F%2Fmywebsite.com&msg=This+is+the+message Name

表单数据(回调不返回任何数据)

contact.on('submit', function(){
        var contactData = contact.serialize();
        console.log(contactData);
        return ajaxPost('mail.php', 'POST', contactData, (data) => {
            console.log(data);
            // Contact form callback
            alert('Thanks for contacting us!');
        });
    });
Ajax Post

var ajaxPost = function (x, y, z, callback){
    $.ajax({
        url: x,
        type: y,
        data: z,
        // encode: true,
        processData: true,
        contentType: false,
        dataType: 'html'
    }).done(() => {
        callback();
    });
    event.preventDefault();
};
PHP文件

 $name = $_POST['name'];
        $email = $_POST['email'];
        $tel = $_POST['tel'];
        $msg = $_POST['msg'];
        $web = $_POST['web'];
        $admin_email = "myemail@email.com";
        mail($admin_email, 'Name: ' . $name . " Email: " . $email, ' '. "Message: " . $msg . " Website: " . $web);
echo $name . $email . $tel;
HTML表单
<div class="form col-lg-6 col-md-6 col-sm-6 col-xs-12 text-center animated slideInDown">
        <form id="contact" name="contact-form" action="" method="post" datatype="multipart/form-data">
            <h3 class="text-center">Drop us a line</h3>
            <fieldset>
                <input placeholder="Your name" name="name" type="text" tabindex="1" required autofocus>
            </fieldset>
            <fieldset>
                <input placeholder="Your Email Address" name="email" type="text" tabindex="2" required>
            </fieldset>
            <fieldset>
                <input placeholder="Your Phone Number (optional)" name="tel" type="text" tabindex="3" required>
            </fieldset>
            <fieldset>
                <input placeholder="Your Web Site (optional)" name="web" type="text" tabindex="4">
            </fieldset>
            <fieldset>
                <textarea placeholder="Type your message here...." name="msg" tabindex="5" required></textarea>
            </fieldset>
            <fieldset>
                <button type="submit" id="contact-submit">Submit</button>
            </fieldset>
            <a id='number-attn' class="glyphicon glyphicon-phone" href="tel:5555555555">&nbsp;5555555555</a>
        </form>
    </div>
</div>

我仍然不确定为什么另一种方式不工作,但我让我的PHP文件通过使用FormData对象来对话。

        var contactData = new FormData(contact[0]);

从ajax post中删除选项"contentType: false"