FanatPHP, я переделал разбор на сложный анализ responseJSON при OK или responceText в случае ошибки. Раньше что - анализировал responce['resp'] и все, теперь малость подольше, но сайт внутренний, не высоконагруженный и 5 строк js погоды не сделают.
На продакшене уберу, протестил, теперь что с убранными ошибками что с включенными корректно работает.
я не хочу обрабатывать ws в JS, поэтому и направляю в файл РНР где могу его изменять, настраивать. У меня одновременно еще и LDAP соединение используется, вот все в одном классе и реализовываю.
Значит мне копаться в коде РНР чтобы убрать возврат ошибки ? Или в принципе невозможно убрать возврат ошибки для одного типа соединения ?
FanatPHP,
меню реализовано через ajax, в нем в сторону php функции посылается запрос, в той функции производится соединение с ws сервером и если не ОК, то назад в Ajax уже приходит ошибка из РНР но в ветке error, тут подсказали что можно анализировать в complete, что я и буду делать.
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;
}
}
FanatPHP,
не совсем так. Конкретно по РНР :
1. Возможно подавить все ошибки и при этом писать их в файл ?
2. Можно ли заменить ошибку РНР на собственную ?
Текст получаемой ошибки:
Object { readyState: 4, getResponseHeader: getResponseHeader(e), getAllResponseHeaders: getAllResponseHeaders(), setRequestHeader: setRequestHeader(e, t), overrideMimeType: overrideMimeType(e), statusCode: statusCode(e), abort: abort(e), state: state(), always: always(), catch: catch(e), … }
responseText: " \nWarning: fsockopen(): Unable to connect to localhost:7777 (Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера)
ну и далее в каком мечте какого файла был вызов.
Rsa97: Отвечая по пунктам я обратил внимание на ession_start() .... У меня в некоторых файлах не было скобок :( ... Детская ошибка... Спасибо за ответы !
Rsa97: Если вы имели в виду сетевую активность- то нет, отработали 2 запроса при регистрации и все... Подождал еще немного и попробовал запустить ссылку. Ответа с сессиями так и нет
Эта связка из 2 функций работает, во второй функции подцепляется сессия, данные видны.
А следующая функция , вызываемая по клику на динамически сформированную ссылку в результате работы предыдущих функций, в скрипте на сервере уже не видит сессию !
function loadList(idProj){ //---------------------------
$.ajax({
type: "POST",
url: "script_php_aj_getallist", // раньше шел вызов aj_switch, а в том инклудились другие файлы
data: {
r:'showAll'
},
dataType: "json",
success: function(result){
}
});
}
Сессия есть, жива и с данными.
Заголовки одинаковые, скрипты вызываются из одного места (main.js), исплняются также в одной папке через инклудинг нужных файлов. Т.е. во всех Ajax запросах указан один и тот же входной скрипт на сервере.
хм... не знал, право... Временно поставил alert(), действительно, второй вызов AJAX пришел с результатом ! Подскажите, пожалуйста как в JS сделать корректно ? дело в том что у меня вызовы AJAX в отдельных функциях, так как вызываются несколько раз.
function start(){
getUser()
getList()
}
запросы вызываются последовательно. В конце первого скрипта php стоит зsession_write_close() и затем echo result. На локальном компьютере же все работало- вот что смущает, может быть у хостера какая-то фишка не активна, так знать бы какая...
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.
На продакшене уберу, протестил, теперь что с убранными ошибками что с включенными корректно работает.