我在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.logging dataError
参数返回一个巨大的垃圾清单,其中没有一个与此变量相关。
我已经看到有可能将json_encoded变量发送给JS,但是从不在ajax返回的错误块中 - 是否有一种简单的方法来获取此变量?谢谢你们。
答案 0 :(得分:1)
您需要echo json_encode($x)
并发送正确的回复标题。
答案 1 :(得分:0)
你抓住异常并在没有任何反应的情况下将其返回:)因此它将在success()函数中可用
要使其可用,您必须发送错误标题,例如500 - 然后js库将检测到有错误并将输出放入error()函数