无法通过ajax调用在服务器端检索json数据

时间:2014-09-26 13:06:30

标签: php ajax json

这是我从脚本

复制粘贴的Ajax调用
       $.ajax({

        type: "POST",
        url: "createpdf.php?v=635473328964700000",
        data: optionsJSON,
        contentType: "application/json; charset=utf-8",
        dataType: "json",
        beforeSend: calls.beforeSend,
        success: calls.success,
        error: calls.error,
        complete: calls.complete

    });

当我在firefox中检查我的控制台时

在params标签中显示

v 635473328964700000

在POST标签中显示

  {'path':'services/imgProcess.php?c=ixs&t=rt7&ap=0&bp=0&cp=0&a1=01&a2=01&a3=01&     a4=01&a5=01&a6=01&a7=01&a8=01&a9=01&a10=01&a11=01&a12=01&a13=01&a14=01&a15=01&a16=01&a17=01&a18=01&a19=01&a20=01&b1=01&b2=01&b3=01&b4=01&b5=01&b6=01&b7=01&b8=01&b9=01&b10=01&b11=01&b12=01&b13=01&b14=01&b15=01&b16=01&b17=01&b18=01&b19=01&b20=01&c1=none&c2=none&c3=none&c4=none&c5=none&c6=none&c7=none&c8=none&c9=none&c10=none&c11=none&c12=none&c13=none&c14=none&c15=none&c16=none&c17=none&c18=none&c19=none&c20=none&l=1&acc-kitr=0&acc-kitm=0&acc-additionalkit=additionalkit&acc-plasticprotection=0&acc-fingerprotection=0&acc-knuckleprotection=0&acc-ballsthumb=0&width=720&height=480&cache=1411735356642','accessories':'{

  "sliders": "0",
  "kitr": "0",
  "kitm": "0",
  "additionalkit": "additionalkit",
  "plasticprotection": "0",
 "fingerprotection": "0",
 "knuckleprotection": "0",
 "ballsthumb": "0"
  }'}

响应中,它表示Array() 我在createPDF.php文件中有这段代码

 print_r($_POST);

如何在服务器端检索发布的数据。请帮帮我,这很让人困惑..

2 个答案:

答案 0 :(得分:1)

试试这个

  $.ajax({

    type: "POST",
    url: "createpdf.php?v=635473328964700000",
    data: optionsJSON,
    contentType: "application/json; charset=utf-8",
    dataType: "json",
    success:function(data){
        console.log(data);

        //json parse
        var obj = JSON.parse(data);
        console.log(obj);

      }
    });

现在您可以使用obj对象访问json数据,例如var name = obj.name;

答案 1 :(得分:0)

目前您正在以json格式发送数据,因此php无法将数据解析为$_POST数组。 更改您的ajax以发送帖子数据:

data: {options: optionsJSON},
//contentType: "application/json; charset=utf-8",

或更改您的php以访问原始帖子流

print_r(file_get_contents('php://input'));