本人用struts2 jquery ajaxfileupload json 做上传处理,文件可以正常上传。但在返回时直接出来个下载页面。里面内容是{"msg":"789456123"}
上传页面的JS 代码:
- JScript code
<script type="text/javascript" src="./js/jquery.js"></script><script type="text/javascript" src="./js/ajaxfileupload.js"></script> <script type="text/javascript"> function FileUpload() { $.ajaxFileUpload ( { url:'fileupload.action', secureuri:false, fileElementId:'upload', dataType: 'json', success: function (data, status) { if(typeof(data.error) != 'undefined') { if(data.error != '') { alert(data.error); }else { alert(data.msg); } } }, error: function (data, status, e) { alert(e); } } ) return false; } </script>
struts.xml配制文件
- XML code
<struts> <package name="FileUploadAction" extends="json-default"> <action name="fileupload" class="fileUploadAction"> <param name="savePath">/userfiles/image</param> <result type="json"></result> </action> </package></struts>
好像success: function (data, status) 这个根本就没执行。直接把json以下载形势返回来了。
Struts2 是2.1.6 json插件是 jsonplugin-0.33 jquery.js 与 ajaxfileupload.js 都是从ajaxfileupload里拷出来的。 各位帮下,多谢了。
------解决方案--------------------
我这两天也遇到这个问题了,小研究了一下,已搞定
是因为struts2直接就把你那个json下载了 因为你的iframe页面中并没有什么处理xml或者json的js函数造成的
这个ajax控件的原理是认为你iframe页面中是一个包含xml或json的页面,他的例子中直接echo了json,所以是可以成功的
而我们需要做的就是用直接返回一个页面,页面中包含json就可以了,不使用那个struts2的json插件 明白?
你不理财,财不理你!