2

This question is a following from another question I asked - Passing client data to server to create Excel or CSV File.

I have a client page which builds a JSON object to send to the server, and I have server code which can parse that JSON object into an SQL command and end up with a dataset of required data.

I had originally been passing the JSON object to an .asmx web service which would return a JSON object containing my data. Now I want to go in a different direction and have the data returned as a .csv file.

I understand I can try to put my JSON object into a query string and call my .ashx page, but the JSON object could get large, so I'm trying to use the Request.Form of a POST.

My question, and lack of understanding, is in how to use jQuery to post to the .ashx page and have it return the .csv file to the client. If I navigate to the .ashx page directly (and modify the page to hard code the passed data), I get the .csv file returned to me no problem (i.e I get the prompt to open/save the file). If I make a POST to the .ashx file from jQuery and send my JSON object through, I get a response which contains the data in a string, rather than getting a .csv.

So, is there something I am missing, or am I just trying to achieve something that I can't or shouldn't be doing?

I'd thought about passing my JSON object to a .asmx web service which would store the JSON object into a database and return an ID, and then use window.location to browse to the .ashx with the ID as a query string parameter to then generate the .csv file, but I thought there might be a way to avoid that middle step and do it with the POST.

Sorry if this is a little rambling and disjointed. I'll be happy to clarify on any parts that may not make sense to anyone.

Community
  • 1
  • 1
Adam H
  • 193
  • 1
  • 4
  • 16
  • Just a thought, but what if in your javascript, you modify the current form to `target='_blank'` then call `.submit()` then remove the `target='_blank'` code from the form (so that normal postback work correctly). This would pop up a new window with the .ashx page receiving your posted data. – Prescott Jan 11 '12 at 16:46

1 Answers1

0

I am trying to do something similar as we speak.

Take a look at this question. It might help you.

How to: jQuery post to ashx file to force download of result?

Community
  • 1
  • 1
orandov
  • 3,256
  • 3
  • 32
  • 32