Почему запуск нескольких приложений Wicket вызывает конфликты AJAX?

Когда я открываю два веб-приложения 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 ответ

Решение

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

Другие вопросы по тегам