【问题标题】:Unable to access json data in function无法访问函数中的json数据
【发布时间】:2015-12-07 11:24:48
【问题描述】:

我从服务器获取这些数据作为 JSON 响应:

{
    "success": true,
    "status": "success",
    "path": "http:\/\/www.images.site.com\/profile\/large\/",
    "smallpath": "http:\/\/www.images.site.com\/profile\/small\/",
    "smpath": "http:\/\/www.images.site.com\/profile\/sm\/"
}

如何在 jQuery 成功时访问它?我试过这个:

$(document).ready(function () {
    $("#img").dropzone({
        paramName: "file",
        maxFiles: 1,
        url: 'http://images.site.com/aac.php',
        init: function () {
            this.on("success", function (file, dd) {
                console.log("log " + dd.length);
                console.log("log " + dd.success);
                console.log("sd" + dd.path);
            }).fail(function () {
                alert("error");
            });
         }
        });

我收到一个错误:

记录来自服务器的无效 JSON 响应

我正在使用 dropzone.js 进行文件上传

【问题讨论】:

  • 您可以添加用于从服务器获取数据的代码吗?主要是 this 引用的内容
  • 请再次查看问题。括号可能在这里错误,它已正确关闭

标签: jquery json dropzone.js


【解决方案1】:

尝试改变

dd.length

到这里

Object.keys(dd).length

我尝试console.log(dd.length),它显示undefinedObject.keys(dd).length 运行良好。

【讨论】:

  • 但我知道要从 json 响应中访问成功,我必须做 dd.success 它显示成功的价值可能是什么问题
  • 您收到错误:log Invalid JSON response from server,您首先调用此行 console.log("log " + dd.length);。所以Invalid JSON response from serverdd.length。我认为它会出错并停在这里。尝试更改为console.log("log1 " + dd.length);,您将看到脚本停止。对我来说 dd.success 效果很好,dd.length 显示 undefined
  • 在脚本中你不使用dataType 参数。尝试添加dataType: "json"。有时它会有所帮助。
  • 您可以检查来自服务器的响应头,它应该是application/json$headers = getallheaders();
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 2021-11-23
  • 1970-01-01
  • 2017-08-18
  • 1970-01-01
相关资源
最近更新 更多