-1

I have an api that I'm testing at the moment. I'm using ngrok to make my local server that has the api code visible to the internet. If, for example, I have a link like http://something.ngrok.io/api/spreadsheet?param1=123&param2=001,002, what should happen when you click on that link is a spreadsheet is dynamically built using exceljs and sent to the client using express. Here is that snippet of code:

const buffer = await workbook.xlsx.writeBuffer()
res.status(200)
res.set("Content-Type", "application/octet-stream")
res.attachment("spreadsheet.xlsx")
res.send(buffer)

The weird thing that I can't figure out is when you just copy and paste that ngrok link into your browser it prompts the spreadsheet download as I hoped would happen. When you send someone that link through an email client and try to click it, it opens a new tab like it's going to prompt the download, but after a second or two the tab just closes and nothing else happens. Is this because of some email client security? Is there a way to allow the download?

thesofaking
  • 45
  • 1
  • 7

1 Answers1

0

To anyone that runs across this problem in the future, the issue is described here. Turns out that ngrok by default creates an http tunnel and it needed to be https for the email client to allow the download to move forward.

thesofaking
  • 45
  • 1
  • 7