У меня есть некоторые данные из JQGrid, которые должны быть экспортированы в Excel. Итак, мы написали Java-сервлет для записи данных в Excel и отправки их обратно. Со стороны клиента мы используем запрос AJAX JSONP, отправляя данные JSON. Я могу поразить сервлет и сервлет, отправив созданный Excel обратно клиенту. Но я не могу видеть Excel или какой-либо вывод со стороны клиента.
Когда я использовал Fiddler и наблюдал за http-вызовами, я обнаружил, что приложение получило результат. но все равно это не показывает результат.
Вот мой заголовок результата, который я получил.
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
Content-Disposition: attachment; filename=PistonData.xls
Content-Type: application/vnd.ms-excel
Content-Length: 6144
Date: Tue, 27 Mar 2012 08:49:04 GMT
Как открыть этот результат как Excel, используя JQuery? Может кто-нибудь предложить мне способ решить эту проблему.
Обновление № 1
Забыли включить запрос
$.ajax({
type: "POST",
dataType: "jsonp",
contentType:'application/vnd.ms-excel',
url: "http://devmachine:9010/axis/SPSServlet",
data: param,
success: function (dataToSend) {
alert(dataToSend);
}
});
Обновление № 2
По совету Олега я разработал решение этой проблемы.
Вот мой код:
<form id="frmExcelExport" style="display:none;">
<input type=hidden id="partId" name="partId" />
<input type=hidden id="columnNames" name="columnNames" />
<input type=hidden id="data" name="data" />
</form>
$('#columnNames').val(colModStr);
$('#partId').val(currentPartID);
$('#data').val(dataStr);
var urlForExport = "http://devmachine:9010/axis/SPSServlet";
$('#frmExcelExport').attr("method", "post");
$('#frmExcelExport').attr("action", urlForExport);
$('#frmExcelExport').submit();
и это работает очень хорошо.
Огромное спасибо Олегу !!!!