Content-Disposition - HTTP | MDN says In a regular HTTP response, the Content-Disposition response header is a header indicating if the content is expected to be displayed inlinein the browser, that is, as a Web page or as part of a Web page, or as an attachment, that is downloaded and saved locally.
Hence, check the request headers and also check Apache Sling Content Disposition Filter configuration in /system/console/configMgr or it could be somewhere in your code or specific browser behavior.
Also - in a use case we have in an article, - we make a call to a service that returns JSON. We then parse the JSON and set our Java's data members and then display the data in a HTL component's view. At no point - is the JSON downloaded. See: