我有一个页面,用户可以在其中执行一些操作,然后在选择下一步时,我想将它们重定向到一个名为“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。
最佳答案
好吧,我认为您误解了 AJAX 的工作原理。您的ajax请求将json发送到您的php,然后应该使用适当的返回值来响应它,在您的情况下是var_dump
。
这根本不会在 php 中保存 json,如果您在没有 POST 请求的情况下请求 php 文件,除了输出“NO”之外,您不会得到任何其他内容,因为您没有发送 POST 数据.
如果你确实想向你的 php 发送一个 json,你可以做你现在正在做的事情,并监听请求响应,你可以在你的检查器中看到它。我不清楚您最终想要如何处理数据,所以我不知道这是否是正确的方法。
关于javascript - 将 json 从 javascript 发送到 php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26664815/