【发布时间】:2014-10-30 22:56:33
【问题描述】:
我有一个页面,用户在其中做一些事情,在选择下一步时,我想将他们重定向到一个名为“Step2.php”的 php 文件以及一些 JSON 信息。
我构建了我的 json 字符串,它看起来像这样:
[{"name":"IMG_20130726_182336.jpg","size":2280709,"type":"image/jpeg","width":null,"height":null,"lastModified":1374852216000,"fileExtension":"jpg","orientation":1,"displayed":true,"attributes":[{"title":"Name: ","value":"IMG_20130726_182336.jpg"},{"title":"Date: ","value":"no date"}]}]
现在,我通过 jquery POST 像这样发送它:
jsonData = JSON.stringify(serializableAttributes);
console.log(jsonData);
$.ajax({
type: 'POST',
url: 'Step2.php',
data: {"jsonData" : jsonData},
success: function(msg) {
console.log("Json Sent! " +msg);
window.location("")
},
error: function(request,msg){
console.log("Error : " + msg);
}
});
问题:为什么我无法在我的 Step2.php 文件中收到任何内容?我是否错误地将用户重定向到该页面?
Step2.php 文件中的代码如下所示:
if(isset($_POST["jsonData"])) {
$json = $_POST["jsonData"];
var_dump(json_decode($json, true));
} else {
echo "NO";
}
它总是显示NO。
【问题讨论】:
-
您是否在控制台中看到 Json Sent msg 或 Error? (例如,这是 JS 问题还是 PHP 问题?)
-
PS 你的 JSON 数据字符串缺少最后一个结束
]字符...这只是一个错字吗?还是在代码中? -
我猜这是一个 php 问题,因为 ajax 运行成功,显示“Json Sent”。这是将用户重定向到 Step2.php 页面的正确方法吗?
-
@scunliffe 错字,json 字符串太大了,不能放在这里。
-
我认为您对
POST和 AJAX 的工作原理有一个非常根本的误解。
标签: javascript php jquery json post