我的问题 :JSON字符串返回为一个文件。 当我打电话的getJSONResult行动,它会给我与它的JSON字符串,我可以打开或下载文件。
我认为这是一个配置问题,但我不能找到它。 我会很高兴,如果有人能帮助我,谢谢你们!
我有一个开口的形式提交使用的操作和执行方法来获取数据。 然后,我能得到jQuery来工作的唯一办法是把行动和执行方法,只是返回“成功”,然后我去到我的jQuery网格第3动作。
在struts.xml
<struts>
<package name="live" namespace="/live" extends="struts-default,json-default">
<action name="gridAction" class="core.action.AdminAction">
<result name="success" type="json"></result>
<result name="error">/live/YYY.jsp</result>
</action>
</package>
</struts>
我假设你正在使用Internet Explorer,因为我从来没有得到这个问题,谷歌浏览器(以及格式化它均能和娇滴滴甚至还有一个在插件: https://chrome.google.com/webstore/detail/ chklaanhfefbnpoihckbnefhakgolnmc )
搜索的时候,我想出了两个页面,提供相同的解决您的问题,如果确实使用的是IE浏览器:
在Internet Explorer查看JSON
我怎样才能说服IE浏览器只显示应用程序/ JSON而不是提供下载?
该解决方案的主要依据就在这里:
需要在IE中查看JSON响应?
打开记事本,粘贴以下:
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
- 保存文档为IE-Json.reg,然后运行它。 注意:这已经在Windows XP和Windows 7中使用IE 7,8,9测试。
有没有问题(Struts2的问题即是),这是因为你使用的是Chrome,并要求其返回,而无需使用AJAX一个JSON结果的行动。 有些浏览器会为您提供一个下载对话我个人很喜欢那个镀铬显示在浏览器窗口中的JSON字符串没有任何大惊小怪...这是伟大的调试。
更新 : 我没有看IE浏览器,你在哪里得到下载对话的第一个屏幕截图 。
为了防止这种情况......我以为你要异步调用的行动,并既然你提到使用jQuery(在你的意见)你应该看看jQuery.getJSON()
如果此解决方案不会为你做够请发表您使用视图的代码,因为问题在于那里。