Вот простое решение с использованием синхронного XMLHttpRequest:
function sleep(n){
var request = new XMLHttpRequest();
request.open('GET', '/sleep.php?n=' + n, false); // `false` makes the request synchronous
request.send(null);
}
содержимого sleep.php:
<?php sleep($_GET['n']);
Теперь вызовите его с помощью sleep (5);
Почему и что это может быть?
blockquote>Поскольку ответ уже сделан. Вы закрыли ответ, прежде чем он будет использоваться Struts2.
И как я могу исправить эту проблему?
blockquote>Когда ваше действие завершится, верните
Action.NONE
код результата. Этот код говорит invoker не выполнять какой-либо результат, потому что ответ может быть уже выполнен.Вы также можете переписать реализацию действия для использования типа результата
stream
. Таким образом, вы не имеете никакого отношения к ответу и пусть Struts2 сделает все остальное. Пример использования результатаstream
здесь здесь .