【问题标题】:Getting JSON data from jQuery AJAX call on a PHP page从 PHP 页面上的 jQuery AJAX 调用获取 JSON 数据
【发布时间】:2009-12-31 08:41:39
【问题描述】:

我想使用 jQuery Ajax API 发送数据:

var myData = {"param1" : $('#txtParam1').val(), "param2" : $('#txtParam2').val()};

$.ajax({
    url: 'DataService.php?action=SomeAction',
    type: 'POST',
    data: myData,
    dataType: 'json',
    contentType: "application/json; charset=utf-8",
    success: function(result) {
    alert(result.Result);}
});

当我尝试使用 PHP 检索此数据时

    $param1 = $_REQUEST['param1'];

$param1 显示 nullprint_r($_REQUEST) 仅显示 action = SomeAction ..

如何在 PHP 页面上检索发布的数据?

【问题讨论】:

标签: php jquery ajax json


【解决方案1】:

由于您将 ajax 作为“contentType: 'application/json'”发送,因此您需要使用 php://input 获取请求正文,如下所示:

$request = file_get_contents("php://input"); // gets the raw data
$params = json_decode($request,true); // true for return as array
print_r($params);

【讨论】:

    【解决方案2】:

    试试这个:

    $params = json_decode( $_POST['param1']);
    

    然后检查你得到了什么:

    var_export( $params);
    

    或者您可以使用foreach 循环:

    foreach( $params as $param)
    {
        echo $param . '<br />';
    }
    

    您正在使用 POST,方法,不要使用 REQUEST,因为它也不太安全。

    【讨论】:

    • @Nav Ali:尝试从您的代码中删除 dataType: 'json' 行,然后查看。
    • 可以在我删除 content-type 时获取数据
    【解决方案3】:

    尝试使用

    $param1 = $_POST['param1'];
    

    【讨论】:

      猜你喜欢
      • 2018-06-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-12
      • 1970-01-01
      相关资源
      最近更新 更多