我正在尝试做一个HTML联系表单,它将通过MailGun发送电子邮件
我遵循here to do this using Ajax and PHP的指示
我没有PHP经验,想要一种简单的调试方法。
因此,我想在我的send.php中添加弹出消息
我可以让wwwroot \ hello.php工作,所以我知道PHP是可用的。
<?php
echo("hello php");
?>
我在send.php中尝试了以下内容,但我没有看到任何消息
<?php
echo "Hello Send2";
if( isset($_POST) ){
echo "In post.";
phpAlert("in post2");
$postData = $_POST;
$mailgun = sendMailgun($postData);
if($mailgun) {
echo "Great success.";
} else {
echo "Mailgun did not connect properly.";
}
}
// etc
Ajax调用是
var dataString = '<p><strong>Name: </strong> '+ name + '</p><p><strong>Email: </strong> ' + email + '</p><p><strong>Message: </strong> ' + message + '</p>';
$.ajax({
type: "POST",
url: "script/send.php",
data: { data: dataString, senderAddress: email },
success: function() {
alert("Got success");
我确实得到了javascript“获得成功”的消息,但我正在尝试解决为什么send.php不起作用。
我认为第一步是能够添加对echo的调用,但没有显示。
send.php确实包含curl调用所以我猜我的下一个问题可能是关于如何在Azure中设置它,但首先我想知道为什么echo不能在send.php内部工作
你说“我看不到任何消息”。由于您报告ajax调用成功完成,因此这只是因为您的ajax调用不会将它们打印出来。与直接调用脚本不同,当您通过ajax请求它时,它不会自动回应您的浏览器窗口的响应 - 毕竟,您的代码不知道在您的现有页面中放置该输出的位置,直到您告诉它。 (它不能只是在任何地方任意放置,这可能会破坏你的页面布局或只是看起来很愚蠢。)
“success”回调提供了一个参数,该参数将包含来自服务器的响应。你需要采取它并以某种方式显示它。这是一个非常简单的示例,只是显示一个警告框:
success: function(response) {
alert(response);
}
response
将包含你在send.php脚本中echo
的任何内容。
请参阅http://api.jquery.com/jquery.ajax/以了解$ .ajax中各种回调提供的参数及其包含的内容。
附:您也可以随时查看对ajax调用的响应,即使您未在代码中使用响应,只需打开浏览器的开发人员工具,转到“网络”选项卡,然后查找ajax调用并查看“响应” “该通话中的标签。