通过 JQuery ajax.post 向 PHP 提交 JSON 数据

2023-12-05

我使用 POST 通过 AJAX 将数据提交到 php 文件。 仅提交字符串就可以正常工作,但现在我想使用 JSON 提交 JS 对象并在 PHP 端对其进行解码。

在控制台中我可以看到,我的数据已正确提交,但在 PHP 端 json_decode 返回 NULL。

我尝试过以下方法:

this.getAbsence = function()
{
    alert(JSON.stringify(this));
    jQuery.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "ajax/selectSingle.php?m=getAbsence",
        data: JSON.stringify(this),
        success : function(data){
            alert(data);
        }
    });
}

PHP:

echo $_POST['data'];
echo json_decode($_POST['data']);
echo var_dump(json_decode($_POST['data']));

And:

this.getAbsence = function()
{
    alert(JSON.stringify(this));
    jQuery.ajax({
        type: "POST",
        contentType: "application/json; charset=utf-8",
        url: "ajax/selectSingle.php?m=getAbsence",
        data: {'Absence' : JSON.stringify(this)},
        success : function(data){
            alert(data);
        }
    });
}

PHP:

echo $_POST['Absence'];
echo json_decode($_POST['Absence']);
echo var_dump(json_decode($_POST['Absence']));

警报只是为了检查一切是否正常......

是的,通常的字符串被正确回显:-)


第一个代码中的代码出错的地方是您必须使用以下代码:

var_dump(json_decode(file_get_contents("php://input"))); //and not $_POST['data']

引用自 PHP 手册

php://input 是一个只读流,允许您从请求正文中读取原始数据。

由于在您的情况下,您在正文中提交 JSON,因此您必须从此流中读取它。常用方法为$_POST['field_name']不起作用,因为帖子正文不是 URL 编码格式。

在第二部分中,你一定使用过这个:

contentType: "application/json; charset=utf-8",
url: "ajax/selectSingle.php?m=getAbsence",
data: JSON.stringify({'Absence' : JSON.stringify(this)}),

UPDATE:

当请求具有内容类型时application/json,PHP 不会解析请求并为您提供 JSON 对象$_POST,您必须自己从原始 HTTP 主体中解析它。使用以下命令检索 JSON 字符串file_get_contents("php://input");.

如果你必须使用$_POST你会做到的:

data: {"data":JSON.stringify({'Absence' : JSON.stringify(this)})},

然后在 PHP 中执行:

$json = json_decode($_POST['data']);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过 JQuery ajax.post 向 PHP 提交 JSON 数据 的相关文章

  • 捕获客户端验证失败

    我有一个基于 div 点击提交的表单 我还让它在单击时启动等待指示器 我试图找出是否有一种方法可以检测客户端验证是否失败 以便我可以删除等待指示器 在提交尝试后不再显示它 或者我可以手动调用客户端验证在我尝试提交之前 你可以试试 div c
  • jQuery 拖动并跟随鼠标

    我正在尝试创建一个两列的可滑动区域 中间有一个拖动栏 请参阅这个小提琴 http jsfiddle net W7tGj 2 http jsfiddle net W7tGj 2 我试图避免将 jQ UI 添加到其中 因此任何帮助将不胜感激 我
  • 我可以制作一个 PHP“宏”(如#define)来为函数调用提供参数吗?

    我所说的参数是 FILE and LINE 函数调用者的那些 以便函数可以在错误报告中使用它们 假设我有两个文件和 file 1 php 调用的第 100 行my func 在 file 2 php 中 我想拨打这个电话my func FI
  • 如何捕获jquery中的任何点击事件[重复]

    这个问题在这里已经有答案了 我有一个按钮 当单击它时 会显示一个带有图像的 div 例如聊天的表情符号面板 如果我再次单击它 div 会隐藏 但我想要做的是 如果 div 已经显示 然后我单击页面的任何其他内容 我想隐藏它 我试过这个 my
  • 在 foreach 循环中使用 next

    我正在使用 foreach 循环数组 在特定情况下 我需要在迭代到达下一个元素 如预测 之前知道下一个元素的值 为此 我计划使用该功能next http www php net manual en function next php 在文档
  • 在 PHP 中使用重命名函数时出错

    尽管文件仍然被移动到正确的目录中 但我不断收到此错误 有人知道我为什么会收到此错误吗 Warning rename Images uploaded 1162504 56863010 jpg Images uploaded Portraits
  • jQuery Mobile 标题限制

    jQuery 移动标题有什么限制 有多少个字符 我们如何改变这个限制 使用 jQuery 移动 谢谢 您可以覆盖 ui title 类上的左右边距 为自己提供更多空间 但要小心 因为边距用于确保文本不会干扰标题中的任何左右按钮 ui hea
  • 使用 java.util.Set 时的 Jackson bug(或功能!?) - mySet.size() 始终为 1

    我正在使用 Jackson 2 2 0 和 Spring 3 2 0 以及 Hibernate 4 2 2 我最近不得不通过 POST 向服务器发送一组对象 cancelationDate 2013 06 05 positions pric
  • 如何使用 Amazon S3 SDK 更新元数据

    我正在使用 Amazon 的 AWS SDK 的 PHP 版本 我有一堆带有Expires标头 我想删除该标头并添加一个Cache control标题代替 这更新对象 http docs amazonwebservices com AWSS
  • PHP、MySQL 验证故障且搜索不起作用?

    我创建了一个小的注册粘性表格 一切工作正常 但如果我输入任何错误的值 例如姓名中的数字 年龄中的字母甚至错误的电子邮件格式 那么数据仍然保存在数据库中 我无法找出验证问题 另外一个是搜索选项 每当我在搜索框中输入任何名字或姓氏时 它都应该显
  • 设置三个输入数字的最大值

    我有三个输入数字
  • 将jQueryUI datepicker附加到div(显示位置错误)

    我在输入上使用 jQueryUI datepicker 默认情况下 jQueryUI 会附加 ui datepicker div to the body该文件的 有问题的输入位于屏幕上的 弹出 div 中 这意味着该 div 之外的任何点击
  • 一系列 unicode 点的正则表达式 PHP

    我正在尝试从字符串中删除所有字符 除了 字母数字字符 美元符号 下划线 代码点之间的 Unicode 字符U 0080 and U FFFF 通过这样做 我得到了前三个条件 preg replace a zA Z d foo 我如何去满足第
  • a:not(a:not([href])) 选择器

    我希望无论何时 某个操作都与锚标记的点击事件相关联href属性 不开始于mailto and 不以 and 存在任何值 包括空 所以我正在尝试这段代码 a href example com example com a a href Some
  • 如何在 Rails for Android 中使用 gzip 压缩 JSON?

    我正在运行 Rails 3 2 7 和 Ruby 1 9 3p194 以从 SQLite 数据库输出 JSON 数据 render json gt result to json Android 应用程序使用通过以下方式加载的 JSON 文件
  • 将json数据从servlet传递到jsp到js文件

    我得到了这个创建 JSON 数据的 servlet 我想将此数据传递到一个 jsp 页面 该页面应该通过 InfoVis 工具包显示数据 servlet java JSONObject json new JSONObject JSONArr
  • chrome中使用jquery的图像高度问题

    img height 回报0在 Chrome 中 但在 IE 和 Firefox 中返回实际高度 在 Chrome 中获取图像高度的实际方法是什么 正如 Josh 提到的 如果图像尚未完全加载 jQuery 将不知道尺寸是多少 尝试这样的操
  • 如何防止 Bootstrap Navbar Toggle 下推内容?

    我将 Bootstrap 与静态顶部导航栏一起使用 如下所示
  • 如何在网页上显示进度条直到网页完全加载?

    我想在网页中显示进度条 加载弹出窗口 直到页面完全加载 我的网页很重 因为它包含一个 HTML 编辑器 这是一个基于 jQuery 的 HTML 编辑器 需要很多时间才能完全加载 在加载时 我希望在页面上显示一个进度条 该进度条将在整个页面
  • PHP SFTP 简单文件上传

    我正在使用 phpseclib SFTP 类 并尝试上传这样的文件 sftp new Net SFTP mydomain com if sftp gt login user password exit Login Failed sftp g

随机推荐

  • MySQL 使用 GROUP BY 和 ORDER BY 得到错误结果

    我有一张桌子user comission configuration history我需要从一个中选择最后一个佣金配置user id Tuples 我尝试了很多查询 但是结果是错误的 我最后的SQL SELECT FROM SELECT F
  • 在servlet中获取jsp响应作为字符串

    有没有办法从 jsp 文件中获取响应作为 servlet 内的字符串 就像是 protected void service HttpServletRequest request HttpServletResponse response th
  • Spring MVC - 我可以在 RestController 中自动装配 HttpServletRequest

    我可以自动装配吗HttpServletRequest in my RestController就像下面一样 它会返回不同的结果吗servletRequest即使是在高并发环境下执行 我有一个限制 我不能将其作为方法参数 因为我正在实现一个自
  • 如何使用正则表达式获取 golang 括号内的所有内容

    我试图在 golang 正则表达式中获取以下 sql 语句的外括号内的所有内容 Categories outside bracket PersonID int LastName varchar 255 FirstName varchar 2
  • Emacs Tramp ssh 双跳

    有人可以帮我设置 Emacs Tramp 来进行双跳吗 我想在 machine2 abc def edu 上工作 我只能通过 machine1 abc def edu 连接到它 我的用户名是 myname 两台机器上的用户名相同 我尝试添加
  • 压缩单个文件时Python gzip文件夹结构

    我使用 Python 的 gzip 模块对单个文件的内容进行 gzip 压缩 使用的代码类似于文档中的示例 import gzip content Lots of content here f gzip open home joe file
  • 在OctoberCMS中创建API(Web服务)

    我是 OctoberCMS 的新手 我发现它确实非常好的 CMS 我正在本地服务器中创建 2 个项目 一个是在 Cakephp 中 http localhost 5p group 另一个是 OctoberCMS http localhost
  • jquery悬停和setTimeout/clearTimeOut

    我目前正在尝试制作带有子菜单的菜单 这就是我想做的 将鼠标悬停在链接 mylink 上时 我想在其下方显示一个 div 我们称其为 submenu 鼠标离开此链接后 5 秒后想要执行某个功能 在这 5 秒的间隔内 如果我将鼠标悬停在 div
  • C# Interop.excel Range.formula VLOOKUP 错误

    我正在使用 VS 2015 c 进行开发 尝试将公式放入单元格内 公式为 articoli contatorerighe 3 CERCA VERT D contatorerighe cellaIniziale ToString Listin
  • 在输出 html 代码中删除了 CSS - kolkov/angular-editor

    使用默认 Html 代码加载页面时编辑器界面和输出HTML代码按预期工作 如果在编辑器中执行任何操作 则 UI 看起来不错 但是输出 Html 代码已删除所有 css 更改 我在这里创建了 stackblitz 代码 以便更好地理解我的问题
  • iPhone 的 UIPopoverController 无法工作?

    我需要为我的 iPhone 应用程序使用 UIPopOverController 我搜索了 stackoverflow 有人说 UIPopoverController 不能在 iphone iphone 设备上运行 为什么 当我在 ipho
  • ImportError:无法从“sklearn.externals”导入名称“joblib”

    我正在尝试从以下位置加载我保存的模型s3 using joblib import pandas as pd import numpy as np import json import subprocess import sqlalchemy
  • 如何在cmd中打开一个新的shell,然后在新的shell中运行脚本?

    我的电脑操作系统是win7 我想使用 bat 文件打开一个新 shell 然后在新 shell 中运行脚本 这个shell是OSGeo4W Shell 它位于 C Program Files QGIS Dufour OSGeo4W bat
  • XSL:计算以前的唯一兄弟姐妹

    好的 我想应用一个 XSL 样式表 该样式表对先前唯一的 ROLE 节点进行计数 并输出以下输出格式 name 当前节点之前的唯一 ROLE 节点的数量 我在本来应该很容易实现的事情上浪费了几个小时 我尝试以多种方式实现这一点 包括 Mue
  • 在android中加载flash文件(.swf)webview [重复]

    这个问题在这里已经有答案了 可能的重复 将 SWF 加载到 WebView 中 我有一个 swf 文件 我想将其打开到 Web 视图中 并且还想玩 Web 视图中加载的 Flash 游戏 我怎么做 我在 webview 中获取编码形式的 s
  • 弹出窗口使用滚动条

    我正在尝试创建一个使用窗口滚动条而不是 div 滚动条的弹出窗口 类似于正在播放的内容http pinterest com 如何达到这样的效果呢 我所有的尝试都不成功 滚动条出现在 div 上 窗口滚动条滚动正文内容 当你打开弹出窗口时 你
  • JSON 获取嵌套字典中的键路径

    json app Garden Flowers Red flower Rose White Flower Jasmine Yellow Flower Marigold Fruits Yellow fruit Mango Green frui
  • ReactJS 中的 prevState 是什么?

    我认为问这个问题可能很愚蠢 但相信我 我是 ReactJS 的初学者 有人可以解释一下我们为什么使用上一个状态在 Reactjs 中 我努力去理解但失败了 这是我的代码 请帮助我理解 state placeName places place
  • Java 中的 toUpperCase 不起作用[重复]

    这个问题在这里已经有答案了 我有一个字符串 String c IceCream 如果我使用toUpperCase 函数然后它返回相同的字符串 但我想得到 ICECREAM 哪里有问题 The code String c IceCream S
  • 通过 JQuery ajax.post 向 PHP 提交 JSON 数据

    我使用 POST 通过 AJAX 将数据提交到 php 文件 仅提交字符串就可以正常工作 但现在我想使用 JSON 提交 JS 对象并在 PHP 端对其进行解码 在控制台中我可以看到 我的数据已正确提交 但在 PHP 端 json deco