1

我在我的 catch 语句中获取了一个变量(用于 Web 服务调用失败时),并尝试在其上使用json_encode

try {
    WebServices::create($this->nameWS);
}
catch (Exception $e) {                  
   $tr = $e->getTrace();
   $x = $tr[3];
   json_encode($x);                     
}

$x包含一个字符串。

这个 catch 语句将我发送到我的 $.ajax 的错误部分:

$.ajax({
    type: 'POST',
    url: 'index.php',
    data: 'module=random&action=' + action + params,
    dataType: 'json',
    success: function(dataJson){
        callbackServer(action, otherVars, dataJson);
        callServer.isRun = false;
    },
    error : function(dataError) {
        console.log("I want to get the $x variable here");
    }
});

console.loggingdataError参数返回一个巨大的垃圾列表,这些都与这个变量无关。

我已经看到可以将 json_encoded 变量发送到 JS,但永远不会在 ajax 返回的错误块内 - 有没有一种简单的方法可以在这里获取这个变量?多谢你们。

4

2 回答 2

1

您需要echo json_encode($x)发送正确的响应标头。

于 2013-06-04T13:51:26.953 回答
0

您捕获了异常并在没有任何反应时将其返回:) 所以它将在 success() 函数中可用

要使其错误可用,您必须从例如 500 发送错误标头 - 然后 js 库将检测到有错误并将输出放入 error() 函数

于 2013-06-04T13:25:07.987 回答