javascript 如何使用 AJAX 调用php文件,我的php代码正确吗?

ftf50wuq  于 2023-01-24  发布在  Java
关注(0)|答案(2)|浏览(125)

我从来没有用PHP编码过,所以我不知道我的代码是否正确。我试图运行我的PHP文件从我的JavaScript/jQuery代码使用 AJAX 。我似乎不明白什么是错的。没有电子邮件被发送,但我也没有得到任何错误。请帮助!此外,PHP代码中使用的email是我的真实email,只是我不想在问题中使用它,所以我改成了example。所有的东西都是从HTML表单中提取的。我根据它收集的信息给每个输入命名。
JavaScript语言

$.ajax({
            type: "CONNECT",
            url: "mail.php"
        }).done(function(data){
            alert("Message is sent");
        });

PHP语言

<?php

   
$email = $_GET['email'];
$company_name = $_GET['companyname'];
$sender_name = $_GET['customername'];
$telephone_num = $_GET['telephonenum'];
$message = $_GET['message'];
$to = "example@gmail.com";

$subject = $company_name . " " . $sender_name;

$finished_message = "Name: " . $sender_name . "\n
     Company: " . $company_name . "\n
     Telephone Number: " . $telephone_num . "\n
     Email: " . $email . "\n
     Message:\n" . $message . "";
$finished_message = wordwrap($finished_message,70);

$headers = "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
    
$headers .= "From: ". $sender_name . " <" . $email . ">"; 

mail($to,$subject,$finished_message,$headers);

?>

我尝试过在js文件中更改类型,但随后我抛出了错误。

pvcm50d1

pvcm50d11#

下面是通过 AJAX 调用文件的问题的解决方案

$.ajax({
        type: 'POST',
        url: '/mail.php',
        data: {
            // Parameters with values
        }
        
        success: function (res) {
            alert("Message is sent");
        },
        error: function (error) {
            alert("Message not sent"+error);
        }
    });

希望对您有所帮助!

dgtucam1

dgtucam12#

你似乎用错 AJAX ,你没有在请求中发送主体,我建议你这样做:

$.ajax({
  method: "POST",
  url: "mail.php",
  data: {} // your form data
})
.done(function(msg) {
  alert("Data sent!");
});

或使用FormData:

$.ajax({
  method: "POST",
  url: "mail.php",
  data: new FormData() // your form data
})
.done(function(msg) {
  alert("Data sent!");
});

和PHP部分:你正在从GET对象中获取你的值。但是,你应该使用POST方法发送你的电子邮件表单。 AJAX 中,我已经写了method: 'post'。将$_GET更改为$_POST,一切都应该正常工作。
我强烈建议验证传入的数据,至少验证它是否存在。

相关问题