我有一个主要使用 JQuery 编写的页面,最后我想发送一封包含页面结果的电子邮件。我的脚本中有这段代码:
索引.html
var myUrl = "http://mywebsite/mail.php";
$.ajax({
type: "POST",
url: myUrl,
cache: false,
contentType: "application/json; charset=utf-8",
data: { body:"test",
to:"myemail@gmail.com",
subject:"Test Results"
},
dataType: "json",
complete: function(transport, data){
console.log(data);
if (transport.status == 200)
alert("Worked.");
else
alert("Didn't work, " + transport.status);
}
});
我知道我的 .php 文件有正确的路径,因为如果我更改“myURL”变量,我会收到错误消息。这是我的另一个文件:
邮件.php
<?php
$body = $_POST['body'];
$to = $_POST['to'];
$subject = $_POST['subject'];
mail($to, $subject, $body);
?>
问题是,虽然我的 jquery 返回警报“Worked”,并且似乎一切正常,但我的 mail.php 文件似乎从未运行过:我没有看到那里的任何控制台日志出现,而我的索引文件中的控制台日志确实出现了。我也没有收到电子邮件,但没有出现错误。我什至尝试在 .php 文件中故意放入错误,但什么也没发生。我认为这是某种小问题,因为我以前从未真正使用过 php,所以希望问题很简单。
--EDIT-- 所以我更新了我的代码,由于某种原因,我不再在我的 index.html 文件中看到 console.logs,即使它们之前显示过。如果我能得到关于我应该使用 $.post 还是 $.ajax 的答案,那就太好了,而且我仍在寻找一种方法来确认邮件命令是否正在运行。谢谢。
--EDIT 2-- 当我调用console.log(data)
我的索引文件时,我在控制台中看到“parsererror”。有谁知道这可能是什么原因?