I know this is working because I'm getting data populated in a jQuery plug-in once it parses the JSON response. And I've called this so many times before in the past just to check out the returned JSON in the browser. But lately for whatever reason, and after I've stepped through with the debugger to find that the code in my .ashx is working just fine, I get a download prompt returned prompting me to download the .ashx file instead of JSON
Have you observed your network traffic (e.g. www.fiddler2.com)? What Content-Type is getting returned?
Have you saved the file to see what's actually in it?
If you're getting source code, that means that the HTTPHandler isn't actually running to actually execute the ASP.NET source.
Have you hosted the web page under IIS? It could be because .ashx file extension is not registered with IIS. Check for .ashx extension under IIS file mappings in that case.
Confirm you have the proper content type as EricLaw suggests, but if you are trying to browse directly to the JSON, it is working as designed. Request the url from javascript and see if you get the expected data response. The browser sees the file as a ASHX file, which is registered to visual studio, but it is actually just a text file you should be able to read in anything if it is in fact json.