2012-01-11 3 views
2

Этот вопрос следующий из другого вопроса, который я задал, - Passing client data to server to create Excel or CSV File.Получение файла из .ashx с сообщением jQuery

У меня есть клиентская страница, которая строит объект JSON для отправки на сервер, и у меня есть код сервера, который может анализировать этот объект JSON в команде SQL и в итоге получить набор данных необходимых данных.

Я изначально передавал объект JSON веб-службе .asmx, которая возвращала бы объект JSON, содержащий мои данные. Теперь я хочу пойти в другом направлении и вернуть данные как CSV-файл.

Я понимаю, что могу попытаться поместить объект JSON в строку запроса и вызвать мою .ashx-страницу, но объект JSON может стать большим, поэтому я пытаюсь использовать Request.Form POST.

Мой вопрос и непонимание заключается в том, как использовать jQuery для публикации на странице .ashx и вернуть его. CSV-файл клиенту. Если я перейду непосредственно на страницу .ashx (и измените страницу на жесткий код переданных данных), я получаю. CSV-файл, который мне не нужен (я получаю приглашение открыть/сохранить файл). Если я сделаю POST в файл .ashx из jQuery и отправлю свой объект JSON через, я получаю ответ, который содержит данные в строке, вместо получения .csv.

Итак, что-то у меня пропало, или я просто пытаюсь достичь чего-то, чего я не могу или не должен делать?

Я думал о передаче объекта JSON веб-службе .asmx, которая будет хранить объект JSON в базе данных и возвращать идентификатор, а затем использовать window.location для перехода к .ashx с идентификатором как query string, чтобы сгенерировать файл .csv, но я подумал, что может быть способ избежать этого среднего шага и сделать это с помощью POST.

Извините, если это немного бессвязно и разъединено. Я буду рад прояснить любые части, которые могут не иметь смысла для всех.

+0

Просто мысли, но что делать, если в вашем JavaScript, вы измените текущую форму 'TARGET = '_ blank'' затем вызовите' .submit() 'затем удалить' цель =' _ blank'' код из формы (чтобы нормальная обратная связь работала правильно). Появится новое окно, в котором страница .ashx получит ваши опубликованные данные. – Prescott

ответ

Смежные вопросы