php - 如何在 PHP 中接收 JSON 对象?

标签 php javascript jquery ajax json

我正在尝试将 JSON 对象从 AJAX 请求发送到我的服务器。

我正在用 JQuery 这样做:

  $.ajax({
    type: "POST",
    url: settings.ajax.post,
    dataType: 'json',
    data: basket.aggregate(Basket.EXPORT_JSON, qty),
    success: function(data, textStatus, jqXHR) {
      if (typeof settings.ajax.success == "function") settings.ajax.success(data, textStatus, jqXHR);
    },
    error: function(jqXHR, text, e) {
      if (typeof settings.ajax.error == "function") settings.ajax.error(jqXHR, text, e);
    }
  });

url 指向服务器上的这个文件:

<?php

$to = "<my-email-address>";
$subject = "JSON test";
$message = "POST dump:\n\n";

foreach($_POST as $key=>$value)
    {
        $message .= $key . ":" . $value;
    }

mail ($to, $subject, $message);

exit;
?>

但是 POST var 似乎是空的,即使在 Firebug 中我可以看到正确的数据已发送到服务器:

Firebug can see the JSON Object

每次请求发送后,都会调用ajax错误函数,出现未定义错误(我猜是因为服务器没有回复?或者我不知道?)

最佳答案

POST 需要键值对,但您只是向它发送一个没有键的值(JSON 字符串)。它需要是一个数组。

其次,您需要先解码 JSON,然后才能在 PHP 中将其用作数组或对象。 json_decode() 用于此目的。

关于php - 如何在 PHP 中接收 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11570713/

相关文章:

javascript - 在javascript中分解复选框输入值

php - 需要添加表单验证codeigniter

jquery - 通过 jQuery ajax 调用将值列表传递给 django View

jquery - 在 qtip 上方显示 jQueryUI 工具提示

javascript - "disabling"(灰色文本,无鼠标/键盘)容器内的 jQuery UI 小部件和常规 HTML

jquery - 简单的 jQuery 和 CSS 导航在刷新时随机无法正常工作...所有浏览器

php - Ajax 无法在 codeigniter 中工作来填充下拉列表

php - PHP 中全局变量和函数参数之间的优点/缺点?

javascript - 如何在 CRM 中刷新社交面板的注释

javascript - 在 Javascript 中合并 C# 库 "wrapper"