Как получить свои данные из получаемой ошибки Ajax?
Из JS посредством Ajax отправляю запрос к функции php, в которой происходит соединение через websocket с ws-сервером. Если сервер недоступен, назад отправляется ошибка, которую считываю в ветви error. Каким образом мне получить значение switch, resp из такого ответа ? Ответ получаю console.log(response['responseText']).
>>
Warning: fsockopen(): Unable to connect to localhost:7777 (Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера) in C:\web\OSr\domains\targos\src\ServersController.php on line 90
{"switch":"show","resp":"\r\n .... }
<
Немного не понял сначала сути вопроса, комент удалил. А ваши данные switch, resp вы не получите, так как это просто строка с ошибкой. Самого словаря в ответе нет.
Elvis, Я в рнр файле формирую ответ (return json_encode(['switch'=>'show'],['resp'=>'Сервер не отвечает'])).
Если в РНР отключить все ошибки, то ответ попадает в ветвь success и все красиво отрабатывает, но я хочу логировать ошибки, в рнр включаю их, тогда ответ попадает в ветвь error (так как возникает ошибка при подключении к незапущенному ws-серверу и результат уже не success). Я хочу в error так же анализировать параметры switch, resp. Как мне их выдернуть из ответа что я приводил выше ?
success: function (response) {
switch(response['switch']){
case "show":
$("#element").html(response['resp])
break;
}
},
error: function (response) {
switch(response['switch']){
case "show":
$("#element").html(response['resp])
break;
}
}
Андрей, возможно дело в php изначально? Не понятно как вы в стандартные ошибки добавляете свои данные. Отправьте простой запрос, через postman или curl и посмотрите что конкретно возвращается. Если всё что нужно возвращается в виде строки в ошибке(как указано в вопросе), то тут можно регулярками вытащить и обрабатывать как вздумается.
Андрей, опять же повторюсь: это СТРОКА с ошибкой, а не объект. Ваш json превратился в строку. Поэтому вариант я вам написал - регуляркой достать и делать что хочется. Можете преобразовать из строки обратно в json и работать с ним.