php ajax post请求数据变形,php-在AJAX调用中读取POST数据
我有一些通过Ajax调用不断更改的Session值.我似乎无法获得POST数据的句柄来处理它并设置值.
我要传递给它的是一个字符串数组,如下面的代码所示.
这是AJAX调用的位置:
var sessionValues = [];
str = {"PID": "1", "Level": "Main", "MenuName": "Kitchen", "State": "CHECKED"}
sessionValues.push(str);
var postObj = {"sessionData": sessionValues};
$.ajax({
type: 'POST',
data: {'data': postObj},
url: 'setSession.asp'
}).done(function(response){
console.log(response);
})
我在程序的PHP版本中可以正常工作,但是我的ASP版本无法获取数据.这是我的PHP版本和ASP版本所能转换的最好的版本.
$data = $_POST['data'];
foreach ($data['sessionData'] as $key => $value) {
$projectProduct = "1";
$level = $value["Level"];
$menuName = $value["MenuName"];
$state = $value["State"];
$_SESSION['PID:'.$projectProduct][$level][$menuName]['menu_state'] = $state;
echo "[PID:".$projectProduct."][".$level."][".$menuName."][".$state."]
";
}
0 =>>>>> Array
[PID:1][Main][Kitchen][CHECKED]
在这里我想在ASP中做同样的事情
' setSession.asp
data = Request.Form("data")
For Each part In data("sessionData")
projectProduct = part("PID")
level = part("Level")
menuName = part("MenuName")
state = part("State")
Session("PID:" & projectProduct).Item(level).Item(menuName).Remove("menu_state")
Session("PID:" & projectProduct).Item(level).Item(menuName).Add "menu_state", state
response.write("[PID:" & projectProduct&"]["&level&"]["&menuName&"]["&state&"]
")
Next
输出空白
看起来它从来没有任何数据,但不会引发任何错误.我是否正确读取POST对象?
[编辑]
这是从Fiddler捕获的RAW POST数据:
data%5BsessionData%5D%5B0%5D%5BPID%5D=1&data%5BsessionData%5D%5B0%5D%5BLevel%5D=Main&data%5BsessionData%5D%5B0%5D%5BMenuName%5D=Kitchen&data%5BsessionData%5D%5B0%5D%5BState%5D=CHECKED
在这里,我在该字符串上使用了URL解码-
data[sessionData][0][PID]=1&data[sessionData][0][Level]=Main Level Plan&data[sessionData][0][MenuName]=Kitchen&data[sessionData][0][State]=CHECKED
看起来我现在应该可以通过使用
For Each part In Request.Form("data[sessionData]")
但什么也没发生.我添加了一个简单的循环来查看request.form,这是它所看到的:
for each x in Request.Form
Response.Write(x)
Next
' outputs -> data[sessionData][0][PID]data[sessionData][0][Level]data[sessionData][0][MenuName]data[sessionData][0][State]
我想这归结为只是正确地读取并正确处理了该字符串,如果发送了多个字符串,则会多次读取.正确?
解决方法:
RAW输出绝对有助于确定发生了什么.
发生的事情是jQuery将JSON结构转换为HTTP POST参数,但是在此过程中,它创建了一些过于复杂的键名.
如果您分解键值对,您会看到类似
data[sessionData][0][PID]=1
data[sessionData][0][Level]=Main Level Plan
data[sessionData][0][MenuName]=Kitchen
data[sessionData][0][State]=CHECKED
就Classic ASP而言,这只是字符串键和值对的集合,仅此而已.
弄清楚这些键是什么的正确方法是做您在问题中所做的事情,但要稍作改动.
For Each x In Request.Form
Response.Write(x) & "=" & Request.Form(x) & "
"
Next
当输出为HTML时,其外观类似于上面显示的细分.
掌握了什么键之后,您应该能够直接从Request.Form()集合中引用它们.
Dim pid: pid = Request.Form("data[sessionData][0][PID]")
Response.Write pid
输出:
1
标签:ajax,vbscript,asp-classic,php
来源: https://codeday.me/bug/20191111/2022359.html
php ajax post请求数据变形,php-在AJAX调用中读取POST数据相关推荐
- 随机从mysql中读取_如何实现MySQL表数据随机读取?从mysql表中读取随机数据
文章转自 http://blog.efbase.org/2006/10/16/244/ 如何实现MySQL表数据随机读取?从mysql表中读取随机数据?以前在群里讨论过这个问题,比较的有意思.mysq ...
- matlab 十六进制数组,【MATLAB】MATLAB中读取二进制数据文件并加入到矩阵中
MATLAB中读取二进制数据文件并加入到矩阵中的应用如下: 如果对c语言十分熟悉的话,应该对fopen,fclose,ftell,fseek,fread,fwrite,feof 这些函数非常熟悉了,在 ...
- python读取图像数据流_浅谈TensorFlow中读取图像数据的三种方式
本文面对三种常常遇到的情况,总结三种读取数据的方式,分别用于处理单张图片.大量图片,和TFRecorder读取方式.并且还补充了功能相近的tf函数. 1.处理单张图片 我们训练完模型之后,常常要用图片 ...
- C# 从Excel中读取时间数据
之前写到从Excel中读取时间数据 //读取Excel数据Excel.Application xapp = new Excel.Application();string filepath = txt_ ...
- 从MySQL中读取股票数据——从零到实盘10
前文介绍了把股票数据写入MySQL的过程,本文记录从MySQL中读取股票数据的过程. 到目前为止,我们在访问股票代码列表时,每次需要通过BaoStock重新下载.本文将把下载的股票代码保存到MySQL ...
- matlab处理记事本数据库,如何从Matlab的记事本文件中读取大块数据?
如何从Matlab的记事本文件中读取大块数据? 我的数据采用以下格式: TABLE NUMBER 1 FILE: name_1 name_2 TIME name_3 day name_4 -0.01 ...
- R语言中读取excel数据的常用方式有哪些?
R语言中读取excel数据的常用方式有哪些? 目录 R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R语言中读取excel数据的常用方式有哪些? R语言是解决什么问题的? R ...
- 2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒、支付峰值25.6万笔/秒。而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去。数据运营平台的
2017年的双十一又一次刷新了记录,交易创建峰值32.5万笔/秒.支付峰值25.6万笔/秒.而这样的交易和支付等记录,都会形成实时订单Feed数据流,汇入数据运营平台的主动服务系统中去.数据运营平台的 ...
- C# 操作地址 从内存中读取写入数据(初级)
本示例以植物大战僵尸为例, 实现功能为 每1秒让阳光刷新为 9999.本示例使用的游戏版本为 [植物大战僵尸2010年度版], 使用的辅助查看内存地址的工具是 CE. 由于每次启动游戏, 游戏中阳光 ...
最新文章
- 基于自适应策略转移的深度强化学习
- C++知识点53——虚继承
- 泛在电力物联网分析—架构形式
- Servlet(JSP)中动态生成JPG PNG透明 水印图像
- java.lang.IllegalStateException: Unable to read meta-data for class 问题的解决
- vdbench的作用_Vdbench----文件系统IO,一致性校验,常见问题
- 如何生成唯一的Android设备ID?
- mac系统安装spss
- 6. NMF方法及实例
- scala(三):流程控制-分支控制、嵌套循环、for、while、do…while循环、循环中断、多支循环
- 小木工 ____农民工纪事之一
- Java小程序 个人缴税
- 从免费共享经济到知识付费系统,都是如何抓住时代风口的
- 数字IC面试总结(大厂面试经验分享)
- mysql怎么求时间差
- Kubernetes----ReplicaSet控制器
- 应用覆盖安装后桌面图标消失问题
- 分享获得Linux系统RHCE认证日记
- 摊牌了,微软始料未及,Excel和WPS用户:我们已经在使用了
- android 录屏自动运行,Android实现录屏直播+远程控制(二)
热门文章
- 虚函数指针(vptr)与虚函数表(vptb)
- 原来PC界面临洗牌的背后原因是因为存储
- python程序的扩展名是perl程序的扩展名是_Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择...
- bmp280c语言程序,51单片机读取BMP280 180 280气压值1602显示程序
- 建立一个mysql 文件命令是_使用命令行创建数据库
- matlab db(X R),matlab操作sqlite数据库
- oracle自动分区maxvalue,对Maxvalue上限范围分区进行spilt操作
- 假如明天灾难来临_北京医保容灾
- 我看周马,以及3Q大战背后的社会问题
- 买不买D50的N个理由