javascript - 将 json 从 javascript 发送到 php

标签 javascript php jquery json post

我有一个页面,用户可以在其中执行一些操作,然后在选择下一步时,我想将它们重定向到一个名为“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/

相关文章:

javascript - 为什么 PhantomJS 不抓取它重定向到的页面?

javascript - 将嵌套数组转换为对象,将数组索引与对象 ID 匹配

javascript - 在您更改 slider 的值之前,音频不会播放

jquery - 如何在 Django 和 Jquery 中使用 model.Form 通过 Ajax 发送数据

javascript - 如何从 txt_Answer 类的所有文本框中获取所有文本

javascript - JavaScript 不调用函数

javascript - CSS 位置 : relative with position: absolute children 的问题

php - HTML ( PHP ) 框架问题 - 直接阻止用户访问页面

php - E : Couldn't find any package by glob 'php-7.4'

php - 使用 xmlns :xlink attribute in a node 创建 XML