2

我有一个脚本,可以在需要时输出 JSON。PHP 将标头设置为 JSON,然后 JSON 对对象进行编码。

在 JS 方面,$.getJSON收到了它,一切都是花花公子。

问题是当我的 PHP 输出纯文本时(这是我必须处理的情况)。

更大的问题是,尽管我想使用代码来检查 PHP 端的输出类型,getJSON但不会触发回调函数,除非它接收到 JSON 类型的输出。

因此,如果我的 PHP 脚本输出错误代码(未编码为 JSON 例程),则 JS 不会做出反应。

我需要 JS 根据 PHP 的输出类型以某种方式做出反应。

我尝试执行.getor .postJS 函数,但同样,当我的 PHP 输出 JSON 时,这些回调不会被触发/触发。

4

1 回答 1

2

你看过 .done() 和 .fail() 吗?

$.ajax({
    url: 'blah.php',
    data: blah,
    type: 'POST',
    dataType: 'json'
}).done(function(){
    console.log('OK');
}).fail(function(jqXHR, textStatus, errorThrown){
    console.log(textStatus+"\n"+ errorThrown);
});

...另外,这里有一些 JS 代码来验证 JSON ...

// validate JSON
function is_JSON(str) {
    try {
        var c = $.parseJSON(str);
    } catch (e) {
        return false;
    }
    return true;
}
于 2013-01-15T03:29:32.597 回答