javascript - API 没有从 ajax 调用中获取任何发布数据

标签 javascript php jquery ajax

我正在尝试在 ajax post 调用中发送数据。但这不会发送任何数据。

我的 html 表单是

<form>
  <div class="row">
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="firstname">Firstname</label>
        <input id="firstname" type="text" class="form-control" id="firstname">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="lastname">Lastname</label>
        <input id="lastname" type="text" class="form-control" id="lastname">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label  for="email">Email</label>
        <input id="email" type="text" class="form-control" id="email">
      </div>
    </div>
    <div class="col-sm-6">
      <div class="form-group">
        <label for="subject">Subject</label>
        <input id="subject" type="text" class="form-control" id="subject">
      </div>
    </div>
    <div class="col-sm-12">
      <div class="form-group">
        <label for="message">Message</label>
        <textarea id="message" class="form-control"></textarea>
      </div>
    </div>

    <div class="col-sm-12 text-center">
      <a type="submit" class="btn btn-template-main" onclick="sendMail()"><i class="fa fa-envelope-o"></i> Send message</a><span id="sentMessage" style="color:green"></span>

    </div>
  </div>
  <!-- /.row -->
</form>

我的脚本是

function sendMail(){
  var name = document.getElementById ("firstname").value + " " + document.getElementById ("lastname").value;
  var subject = document.getElementById ("subject").value;
  var email = document.getElementById ("email").value;
  var message = document.getElementById ("message").value;
  var body = "<h3>Message from "+ name +"</h3>"+
      "<h4>Email: "+ email +"</h4>"+
      "<p><strong>Body : </strong> "+ message +"</p>";
  var email= 'to=tsmrafee@gmail.com&subject=' + subject + '&body=' + body;
  console.log("done");
  $.ajax({
    url: 'http://trimarkworld.com/email.php',
    method: 'POST',
    data: {
      email: email
    },
    success: function(result){
      console.log("done");
      $("#sentMessage").html("Email has been Sent");
    }
  });

}

我的 php 代码是

if(isset($_POST['email'])){
    echo json_decode($_POST['email']);
}

这不会打印任何内容..我认为 ajax 调用有问题。请帮忙..

最佳答案

当您使用 $.ajax 发送数据时,它不是以 JSON 格式发送,而是以 application/x-www-form-urlencode 格式发送。所以不需要调用json_decode()。只需使用:

echo $_POST['email'];

关于javascript - API 没有从 ajax 调用中获取任何发布数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39797730/

相关文章:

javascript - 切换可变数量的表行

javascript - 套接字未连接到 Angular-Firebase 以获得实时更新

php - 尽管文件存在,但 laravel 存储存在返回 false

JQuery - 当类绑定(bind)到 id 时 addClass

javascript - MVC View 按钮单击事件,将AngularJs对象传递给另一个MVC Controller

javascript - coffeescript定义函数(或方法)时,用 ":"和 "="分隔函数名和参数列表有什么区别?

javascript - 检查数组中的空元素

php - 命名空间和扩展类

PHP/SimpleXML - 为单个 child 和多个 child 生成不同的数组

javascript - 如果第二次只是同一视频,如何防止同一视频加载两次