Функция обратного вызова не выполняется в dojo.xhrGet в IE - PullRequest
0 голосов
/ 21 ноября 2011

Я пытаюсь использовать dojo.xhrGet, чтобы вернуть json из php-файла.В Firefox все отлично работает, но IE вообще не работает, и Chrome может попасть или не попасть.Проблема в том, что обратный вызов не выполняется (в аргументе загрузки).Я проверил Инспектор в Chrome и запрос возвращается с правильными данными, readyState 4 и статус 200, но обратный вызов не выполняется.Есть идеи, что может пойти не так?Может ли это произойти из-за проблемы с областью действия?

var xhrArgs = {
    url : "/phpHelpers/getImages.php",
    handleAs : "json",
    load : function(result) {
        alert('load callback');
    },
    error : function(error) {
        alert('error');
    }
};

this.def = dojo.xhrGet(xhrArgs);

Ответы [ 2 ]

0 голосов
/ 23 ноября 2011

Мне удалось отследить проблему ... Было все из-за этого:

<script type="text/javascript" src="https://getfirebug.com/firebug-lite.js"></script>

Я включил это в свой основной файл, по какой-то причине он мешал обратным вызовам срабатывать как в ie, так и в chrome (хотя Chrome был хитом или мисс). Я не уверен, почему firebug вызвал бы это, но удаление include решило проблему. Спасибо за всеобщее мнение.

0 голосов
/ 21 ноября 2011

Вы пытались использовать preventCache параметр ? В частности, IE любит кэшировать xhr GET, если в инструментах разработчика не установлен флажок «всегда обновлять с сервера».

var xhrArgs = {
  url : "/phpHelpers/getImages.php",
  handleAs : "json",
  preventCache: true,
  load : function(result) {
    console.log(result);
  },
  error : function(error) {
    console.log(error);
  }
};
...