在Ajax中返回一个PHP变量?

时间:2013-06-04 13:20:59

标签: php javascript ajax json

我在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返回的错误块中 - 是否有一种简单的方法来获取此变量?谢谢你们。

2 个答案:

答案 0 :(得分:1)

您需要echo json_encode($x)并发送正确的回复标题。

答案 1 :(得分:0)

你抓住异常并在没有任何反应的情况下将其返回:)因此它将在success()函数中可用

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

相关问题