проблема window.location и window.open - PullRequest
0 голосов
/ 05 октября 2010

Я не могу решить эту проблему.

Изначально в коде JSP была функция в Javascript, которая вызывала бы jsp с другого сервера:

window.open("<%= otherServer %>/ourreports/Company/fooreport.jsp?index"+index,"Foo",options);

, где otherServer былолокальный сервер (http://192.168.4.40:8080) Это работало нормально, и выскочило бы новое окно с fooreport.jsp.

Теперь задача состоит в том, чтобы указать jsp на том же сервере. Итак, я изменил его на

window.open("/reports/Company/fooreport.jsp?index"+index,"Foo", options);

И я бы получил загрузку всплывающего файла вместо страницы

Я также попытался выполнить все следующие действия:

window.location = "/reports/Company/fooreport.jsp?index="+index;
window.location.href = "/reports/Company/fooreport.jsp?index="+index;
window.location = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;
window.location.href = "http://localhost:9080/reports/Company/fooreport.jsp?index="+index;

И у меня все еще есть всплывающее окно для загрузки файла fooreport.jsp на мой компьютер.

JSP правильно сформирован, имеет DOCTYPE, теги, объявления <% @ page ... Это, по сути,тот же jsp, который вызывался до </p>

, я использую WebSphere 7.5.4, а java - 1.5

Ответы [ 2 ]

0 голосов
/ 07 октября 2010

Проблема состояла в JSP. Вызовы с использованием window.location и window.open отлично работали для других JSP.

Проблема была в объявлениях "<% page". Я удалил их, так что не помню точно, но это было связано с настройками Content-Type и ISO. Я удалил их все, оставил только объявления <% page import », и теперь он работает правильно. </p>

0 голосов
/ 06 октября 2010

window.location должно работать, если заголовок Content-Disposition ответа установлен на Attachment.

response.setHeader("Content-Disposition", "attachment; filename=yourfile.ext");

Следует отметить, что делать это внутри JSP - плохая идея.Если ответ касается двоичных данных, JSP может их испортить.Делай эту работу в сервлете.JSP предназначен для записи текста шаблона, не для записи кода Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...