如何在Azure应用程序中显示从Ajax调用的PHP消息

问题描述 投票:1回答:1

我正在尝试做一个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内部工作

php ajax azure
1个回答
1
投票

你说“我看不到任何消息”。由于您报告ajax调用成功完成,因此这只是因为您的ajax调用不会将它们打印出来。与直接调用脚本不同,当您通过ajax请求它时,它不会自动回应您的浏览器窗口的响应 - 毕竟,您的代码不知道在您的现有页面中放置该输出的位置,直到您告诉它。 (它不能只是在任何地方任意放置,这可能会破坏你的页面布局或只是看起来很愚蠢。)

“success”回调提供了一个参数,该参数将包含来自服务器的响应。你需要采取它并以某种方式显示它。这是一个非常简单的示例,只是显示一个警告框:

success: function(response) {
  alert(response);
}

response将包含你在send.php脚本中echo的任何内容。

请参阅http://api.jquery.com/jquery.ajax/以了解$ .ajax中各种回调提供的参数及其包含的内容。

附:您也可以随时查看对ajax调用的响应,即使您未在代码中使用响应,只需打开浏览器的开发人员工具,转到“网络”选项卡,然后查找ajax调用并查看“响应” “该通话中的标签。

© www.soinside.com 2019 - 2024. All rights reserved.