У меня есть код CakePHP, который работает с базой данных для поиска номера идентификатора карты и возврата баланса.код jquery выглядит следующим образом.
function subm(event){
$.ajax({
type: "POST",
//contentType: "application/json; charset=utf-8",
dataType:'json',
url:"\/balances\/balance",
data:$("#button_check_balance").closest("form").serialize(),
cache: false,
beforeSend:function(){
$("#loadingDiv").show(1000);
},
success:function (data, textStatus,xhr) {
$("#loadingDivision").hide(1000);
alert("balance is "+data.balance);
return false;
},
//failure: function(msg){alert(msg);},
error: function(xhr, ajaxOptions, thrownError){
$("#loadingDivision").hide(1000);
alert("readyState: "+xhr.readyState+"\nstatus: "+xhr.status);
console.log(xhr.responseText);
},
/*complete: function(){
alert("complete");
},*/
});
У меня есть файлы balancesController и balance.ctp, и логика контроллера выглядит следующим образом.
function balance() {
$message = "";
$error = "";
$this->layout = 'ajax'; //layout should be ajax based on
Configure::write('debug', 0);
//gets the submitted card number
$card_id = $this->data['balances']['cardId']; //entered card id of the emp
if (!empty($this->data)) {
$this->header('Content-Type: application/json');
try {
$card = $this->Card->getBalance($card_id);
} catch (Exception $e) {
$error = "balance not available";
$resp = json_encode(array('error' => $error));
echo $resp;
exit;
}
if ($this->RequestHandler->isAjax()) {
$this->autoRender = $this->layout = false;
$resp = json_encode(array('cardData' => $cardObj);
echo $resp;
exit;
}
}
}
ая проблема, которая у меня возникает, -при возникновении ошибки баланса недоступно "Я ПОЛУЧАЮ ИНФОРМАЦИЮ О ОТЛАДКЕ ТОРТА В МОЕМ ОТВЕТЕ AJAX."
например - когда я пытаюсь получить доступ к объекту xhr внутри функции ошибки для события $ .ajax, используя "xhr.responseText"«Я получаю длинный вывод, состоящий из <pre class="cake-debug">
.......... и в конце этого ТОЛЬКО я получаю ошибку, которую я зашифровал в json.{"error": "error ...."} Я использовал Configure :: write ('debug', 1);и Configure :: write ('debug', 0);без удачи. Как вы можете видеть, я использовал Configure :: write ('debug', 0);в верхней части моей функции контроллера, а также .. пожалуйста, посоветуйте мне решить эту проблему.Весь ваш вклад очень высоко ценится.