jQuery $ .ajax responseJSON与responseText具有不同的值

时间:2019-05-14 08:04:53

标签: jquery json ajax

我对ajax json响应有一个非常奇怪的问题。 json响应(jqXHR.responseJSON)中的数据与字符串响应数据(jqXHR.responseText)不匹配。 JSON字符串数据的请求没有任何错误(返回状态代码200 OK):

{"pdata":{"1":{"x":158,"y":545},"2":{"x":259,"y":179},"3":{"x":503,"y":77},"4":{"x":435,"y":528}},"status":"0","result":true}

我有用于控制台日志记录的简单代码:

    var loadItemData = function(image) {
        var data = {};
        // Prepare request data
        data.image = image;
        data.token = $this.getOpt('token');
        // Call image get data url
        $.ajax({
            url: $this.getOpt('image_get_data_url'),
            type: 'post',
            data: data,
            dataType: 'json',
            success: function(json, textStatus, jqXHR) {
                console.log(jqXHR.responseText);
                console.log(jqXHR.responseJSON);
                console.log($.parseJSON(jqXHR.responseText));
            },
            error: function(xhr, ajaxOptions, thrownError) {
                alert(thrownError + "\r\n" + xhr.statusText + "\r\n" + xhr.responseText);
            }
        });
    };

上面的ajax成功回调的控制台输出是: enter image description here 问题是,为什么responseJSON与responseText具有不同的数据,为什么手动解析responseText可以提供正确的数据输出? 在测试服务器上部署更改后,我注意到了这个问题,而在本地主机(WAMP服务器)上没有这个问题。使用Firefox 66.0.5(32位)。其开发人员工具会在“网络”标签中显示此请求的正确数据。

0 个答案:

没有答案