4

好的,我对 jQuery 和 json 有点陌生。如果我使用 json 作为返回类型,我还能从 XMLHttpRequest 对象中检索 responseText 吗?

这是我正在使用的代码:

json response: {"clients": []}

$.ajax({
        type: "POST",
        url: "/myurl/whatever.php",
        data: myData,
        dataType: "json",

        success: function(msg){
            status.html(msg[0]);
        },
        error: function(msg) {
                status.html("Error: " + msg[0]);
        }

        });

如果我想输出 json 响应或者我遗漏了什么,使用 msg[0] 是否正确?

我如何仍将上述代码与 XMLHttpRequest 一起使用来获取状态、responseText 等。

谢谢大家!

4

2 回答 2

6

据我所知,对 $.ajax 的调用返回一个 XHR 对象,并且可以从中提取 responseText,例如:

var xhr = $.ajax( {
                        url:' someInfo.php',
                        data: 'which=squirrels',
                        asynch: true
                } );

var resp = xhr.responseText;

响应文本将包含一个 json 字符串,需要将其转换为对象才能使用。

如果您想直接在 : 函数中将响应用作 json 对象success,请按照@cloudhead 的建议进行操作,然后使用msg您选项中的 dataType : "json"会为您处理转换。

于 2009-06-11T23:57:19.897 回答
1

如果您使用的是 json,那么您会得到一个 json 对象,而不是 XML 对象。可以直接输出,不用[0]。

于 2009-06-11T23:45:54.810 回答