获取JSON弹出窗口以保存或打开对话框而不是实际内容?

我的问题 :json字符串作为文件返回。 当我调用getJSONResult操作时,它会给我一个带有json字符串的文件,我可以打开或下载它。

我认为这是一个配置问题,但我找不到它。 如果有人能帮助我,我会很高兴,谢谢你们!

我有一个开头表单,其中包含一个使用action和execute方法获取数据的提交。 然后,我可以让jquery工作的唯一方法是放一个动作并执行只返回’success’的方法,然后我用第三个动作进入我的jquery网格。

在struts.xml

    /live/YYY.jsp    

我假设您正在使用Internet Explorer,因为我从来没有在谷歌浏览器中遇到过这个问题(甚至还有一个插件可以很好地和漂亮地格式化它: https : //chrome.google.com/webstore/detail/ chklaanhfefbnpoihckbnefhakgolnmc )

搜索周围,我提出了两个页面,为您的问题提供相同的解决方案,如果你确实使用IE:

在Internet Explorer中查看JSON

如何说服IE只显示application / json而不是提供下载?

解决方案的主要依据在于:

需要在IE中查看JSON响应吗?

  1. 打开记事本并粘贴以下内容:

     Windows Registry Editor Version 5.00; ; Tell IE 7,8,9 to open JSON documents in the browser on Windows XP and later. ; 25336920-03F9-11cf-8FD0-00AA00686F13 is the CLSID for the "Browse in place" . ; [HKEY_CLASSES_ROOT\MIME\Database\Content Type\application/json] "CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}" "Encoding"=hex:08,00,00,00 [HKEY_CLASSES_ROOT\MIME\Database\Content Type\text/json] "CLSID"="{25336920-03F9-11cf-8FD0-00AA00686F13}" "Encoding"=hex:08,00,00,00 
  2. 将文档另存为IE-Json.reg,然后运行它。 注意:这已经在Windows XP和Windows 7上使用IE 7,8,9进行了测试。

没有问题(struts2问题),这是因为你正在使用chrome并调用一个不使用ajax返回json结果的动作。 有些浏览器只提供个人下载对话我真的很喜欢chrome在浏览器窗口中显示json字符串而不用大惊小怪…它非常适合调试。

更新我没有看到IE的第一个屏幕截图,您将获得下载对话框

为了防止这种情况…我假设您将要异步调用该操作,因为您提到使用jquery(在您的注释中),您应该看看jQuery.getJSON()

如果此解决方案对您没有足够的帮助,请发布您用于视图的代码,因为问题出在那里。