Почему запуск нескольких приложений Wicket вызывает конфликты AJAX? - PullRequest
9 голосов
/ 11 апреля 2011

Когда я открываю два веб-приложения Wicket в одном и том же браузере, кажется, что существуют конфликты AJAX, когда я вижу полное обновление страницы вместо частичного обновления. Это верно, даже если приложения находятся на разных серверах и номерах портов.

Я использую только готовый JavaScript, предоставляемый Wicket (tabbedPanel, onTimerAutoRefresh).

Возможно, это связано с резервной функцией.

Когда открыто только одно веб-приложение, оно работает без проблем.

У меня нет проблем на сайте примеров, поэтому я думаю, что что-то не так с конфигурацией моего приложения.

wicket-ajax.js, строка 970:

try {
    redirectUrl = t.getResponseHeader('Ajax-Location');
} catch (ignore) { // might happen in older mozilla
}

// the redirect header was set, go to new url
if (typeof(redirectUrl) != "undefined" &&
    redirectUrl != null &&
    redirectUrl != "") {
    //redirect and do a full page refresh (window.location = redirectUrl);
}else{
    // do the normal ajax functionality
}

Когда все в порядке, в заголовке нет Ajax-Location. Когда второе веб-приложение загружается в тот же браузер, следующий запрос AJAX первого загруженного веб-приложения получает в заголовке следующую строку:

[Ajax-Location: .]

1 Ответ

8 голосов
/ 13 апреля 2011

Можете ли вы проверить, что корневой контекст ваших приложений отличается?В противном случае вы можете столкнуться с конфликтом на уровне файлов cookie.Они хранятся на основе имени хоста и пути.Если путь к контексту обоих приложений - «/», то значения файлов cookie будут перезаписаны.Откуда возникает конфликт, который вы видите.

...