Jquery Ajax没有传递值

时间:2015-06-09 09:56:07

标签: javascript jquery

这让我发疯了......

$(document).on("click",".load",function(b){
  b.preventDefault();
  $.get("/url/get.php",{
    id: 123
  },
  function(a){
    $("#result").html(a);
  })
});

这会按预期加载页面但是当我print_r($_GET)时它显示为空... 有什么想法吗?

后端:

 if (isset($user) == false) {
     session_start();
     $path_to_root = "../";
     require($path_to_root."require/loads.php");
     $PDO = new PDO(DB_CONN, DB_USERNAME, DB_PASSWORD);
     $user = new User($PDO);
 }
 $i = 0;
 print_r($_GET);

3 个答案:

答案 0 :(得分:0)

请尝试这种方式,使用done()函数:

$(document).on("click",".load",function(b){
  b.preventDefault();
  $.get("/url/get.php",{
    id: 123
  }).done(
  function(a){
    $("#result").html(a);
  })
});

正如在jquery docs中所说的那样,用GET发送有效载荷数据的方式。

无论如何,你也可以使用ajax:

$.ajax({
  url: "/url/get.php",
  type: "get", //send it through get method
  data:{id:123},
  success: function(response) {
      $("#result").html(a);
  },
  error: function(xhr) {
    $("#result").html("ERROR");
  }
});

无论如何,如果你仍然在查看这些错误,那么问题就会出现在你的后端,就像@AmmarCSE评论一样。

希望有所帮助

编辑有关jquery方法success()和done()之间区别的一些文字:

jQuery ajax success callback function definition

答案 1 :(得分:0)

请试试这个

 $(document).on("click",".load",function(b){
  b.preventDefault();
   $.ajax({
   method:'get',
   url : '/url/get.php', 
   data : '{id:123}',
   dataType: 'json', //json,html any you will return from backend
   success:function(a){
       $("#result").html(a);
     }


   })
 });

答案 2 :(得分:0)

尝试使用 $ data = file_get_contents(" php:// input");

$ r = json_decode($ data);

而不是你的php文件中的$ _GET,然后打印$ r