3

我得到了这个表格的代码:

jQuery

 $('#form').ajaxForm({
    beforeSend: function () {
        bar.width(0);
    },
    uploadProgress: function (event, position, total, percentComplete) {

        var percentCompleted = percentComplete + '%';
        bar.width(percentCompleted)
        bar.text(percentCompleted)
        console.log(percentCompleted);
        ///The Console logs properly.
    },

    complete:
    //------------------------------------
    //THIS IS WHERE LIES PROBLEM IS
    //------------------------------------
    function (xhr) {
        //How do you convert the xhr to JSON?

        //I tried :
        var out = JSON.parse(xhr)
        // and :
        var out2 = $.parseJSON(xhr)

        console.log('Completed1: ' + out);
        console.log('Completed2: ' + out2);
    },
    error: function (xhr, desc, err) {
        console.log(xhr)
        console.debug(xhr);
        console.log("Desc: " + desc + "\nErr:" + err);
    }

});

PHP是这样的:

在此处输入图像描述

在此处输入图像描述

$OutCollection是一个联想Array()


Firebug 控制台 说: 在此处输入图像描述

无法弄清楚什么是真正的错误。

非常感谢任何帮助。


萤火虫中的PHP输出/响应

在此处输入图像描述


Console.log(xhr) 打印

在此处输入图像描述

4

4 回答 4

3

似乎 xhf 是一个XMLHttpRequest对象,因此该responseText属性将包含您的 json。

function (xhr) {
    //How do you convert the xhr to JSON?

    //I tried :
    var out = JSON.parse(xhr.responseText)
    // and :
    var out2 = $.parseJSON(xhr.responseText)

    console.log('Completed1: ', out);
    console.log('Completed2: ', out2);
},
于 2013-07-22T01:50:01.813 回答
2

解开谜团:

在建议尝试的评论中使用@Musaconsole.log(xhr)的提示,

我想出了这个。

var out=$.parseJSON(xhr.responseText);

     $.each(out,function(i,v){
    //then:
    console.log(out[i]) //to access each piece of the information.

    });

然而,

不知何故,两个参数$.each()都返回了keykey=value对。我以某种方式认为i应该是循环index的值和v值。$.each这样我们就可以做类似的事情:v[i]. 用作索引来i访问存储在值v数组中的值。

尽管如此,它仍然可以正常工作

于 2013-07-22T02:54:29.517 回答
0

我认为你在声明;之后没有那个variable

 var out= JSON.parse(xhr);
 var out2= $.parseJSON(xhr);
于 2013-07-22T00:58:22.933 回答
0

这里的问题是HTTP 标头

我们需要让浏览器认为接收数据是json,然后你就不需要将返回的字符串解析为json。

只需要在回显 json 编码字符串之前添加它:

header("Content-type: application/json");

于 2017-01-02T13:23:10.823 回答