Javascript-форум (https://javascript.ru/forum/)
-   Библиотеки/Тулкиты/Фреймворки (https://javascript.ru/forum/library-toolkit-framework/)
-   -   Ajax c помощью prototype - что не так? (https://javascript.ru/forum/library-toolkit-framework/7972-ajax-c-pomoshhyu-prototype-chto-ne-tak.html)

Alive Substance 01.03.2010 11:42

Ajax c помощью prototype - что не так?
 
Приветствую.

Есть jsp страничка с подключенными скриптами.
<script language="javascript" type="text/javascript" src="scripts/prototype.js?dummy=14669"></script>
<script language="javascript" type="text/javascript" src="scripts/ajax/fwrss/folderChangeAction.js?dummy=14669"></script>
<script language="javascript" type="text/javascript" src="scripts/basicWizardFrame.js?dummy=14669"></script>


Есть кнопочка Cancel на это страничке c событием onclick="popupCloseWindow(); return false;"
function popupCloseWindow()
{
 if (document.forms[0].frame.value.indexOf("SurveyWizardMerge") != -1) {
   clearSelectedSurveys() ; 
 }
 window.close();
}

function clearSelectedSurveys() {
new Ajax.Request('DeleteSelectedSurveys', {   // сервлет, описан в web.xml
method: 'post',
 onSuccess: function(transport, json) {
 },
 onFailure: function() {
 alert('basiWizardFrame.js:clearSelectedSurveys(). Unable to delete selected surveys.');
 }
 });
}


Вроде бы ничего особенного: должен сработать запрос и окно закроется.
После того как сервлет отрабатывает, окно закрыается, а в родительском окне в firebug появляется след. эррор

Ajax is not defined
Failed to load source for: https://loc...defgo/scripts/prototype.js?dummy=14669 prototype.js?14669 (line 1485)


который указывает на строчку в prototype.js
line 1484:  respondToReadyState: function(readyState) {
line 1485:    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);   <----


Сначало думал, что не успевает отработать запрос, прежде чем закроется окно и ресурсы(.js файлы) освободятся.
Но сервлет точно отрабатывает.
В ослике никакого сообщения об ошибки джаваскрипта не выдается.

Сам не силен в джаваскприте и поэтому решил спросить у вас.
Есть какие-нибудь мысли по этому поводу?

Alive Substance 01.03.2010 16:51

Надо поместить window.close() в коллбек функцию onSuccess.
Тогда только после того как аяксовый запрос полностью завершит свою работу, окно закроется.


Часовой пояс GMT +3, время: 15:35.