Прошу прощения за название, я просто не знаю, как описать это.
В основном я использую JQUERY / ajax для вызова php-скрипта, чтобы проверить некоторые входные данные и получить некоторые данные. Возвращаемые данные кодируются в формате JSON, поэтому в JQUERY я устанавливаю тип данных JSON, и он возвращает объект.
Я только что обнаружил, что при определенных (надо сказать, необычных) условиях, когда сетевое соединение не отвечает ожидаемым образом, вызов ajax вызывает опцию ошибки в JQUERY.
В большинстве случаев у меня появляется сообщение об ошибке, возвращаемое с сервера, но иногда ошибка достигается, и JSON не возвращается из сценария на стороне сервера. Я еще не выяснил, что именно может спровоцировать эту ситуацию в сети, но в любом случае я думал, что просто разберусь с этим в Javascript, пока я еще не знаю.
Идея состояла в том, чтобы проверить, был ли создан ожидаемый объект, а если нет, то создать его с двумя ожидаемыми свойствами и запустить диалог. Таким образом, я бы избегал повторения написания сообщений об ошибках. Это не большая экономия, но я хотел попробовать принцип.
$.ajax({
url: 'getmetadata.php',
type: "POST",
data: entereddata,
dataType: "json",
timeout: (7000), //wait 7 seconds
error: function(data)
{
// handle errors
if(data)
{
// Do nothing error message will be issued from the data object
}else{
// no message was returned. Some other error occured.
function tempdata()
{
this.errortitle = "Error title";
this.errormessage = "Error text";
};
var data = new tempdata();
};
// issue error message
runDialogue(data.errortitle,data.errormessage);
}, //ERROR
success: function(data)
{
}; // SUCCESS
}); // AJAX
в приведенном выше коде объект данных должен существовать или не существовать до оператора "if". И когда я доберусь до runDialogue (); данные объекта всегда должны существовать для передачи свойств errortitle и errordescription.
Когда объект «данные» существует, проблем нет. Что не работает, так это когда объект «data» не существует, то есть если не проходит тест «if». Остальное должно создавать объект «данные», но не создает.
Что я сделал не так?