首页 > 解决方案 > 向php发送ajax请求时没有数据响应

问题描述

我想向我的 php 发送一个 json 数据,但是当我访问我的 php 时没有响应。

这是我的ajax请求

    var project = {project:"A"};

 var dataPost = JSON.stringify(project);

     $.ajax({
     url: 'fetchDate.php',
     data: {myData: dataPost},
     type: 'POST',
     datatype:'json',
     contentType: "application/json",  
     success: function(data) {
         alert(JSON.stringify(data));
     }
 });

});

这是我的 php,我在其中处理请求并返回数据进行测试

<?php header("Content-Type: application/json; charset=UTF-8");
  $objProject = json_decode($_GET["myData"]);
  echo json_encode($objProject->project); ?>

我是 ajax 新手,所以我需要你的帮助

标签: javascriptphpjsonajax

解决方案


您不需要在 ajax 上添加内容类型,因为您实际上并没有将 json 发送到服务器。

     $.ajax({
     url: 'fetchDate.php',
     data: {myData: project},
     type: 'POST',
     datatype:'json',
    // contentType: "application/json",  
     success: function(data, status, jqXHR) {

         console.log(data,status,jqXHR);
          alert(JSON.stringify(data));
     }
});

无需对项目对象进行字符串化,在您的 php 中只需将其编码为 json

<?php  header("Content-Type: application/json; charset=UTF-8");
 $obj = $_POST['myData'];
 echo json_encode($obj); ?>

你应该得到 json 字符串的警报


推荐阅读