【问题标题】:Using jQuery and JSON with AJAX responseText?将 jQuery 和 JSON 与 AJAX responseText 一起使用?
【发布时间】:2010-11-02 07:54:46
【问题描述】:

好的,我对 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 等。

谢谢大家!

【问题讨论】:

    标签: json jquery xmlhttprequest


    【解决方案1】:

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

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

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

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 响应码呢? 200、500 等,还是会随着 XML 对象返回?
      • 如果是 json 对象,我不确定您是否可以从回调中访问状态,但您可以做的是让您的服务器端脚本在发送之前将状态添加到 json 对象它,就像任何其他领域一样。然后可以通过json.status查看。
      猜你喜欢
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 2015-10-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多