使用ajaxForm提交表单上传文件后服务器端的json数据无法解析到
$('#portraint_up_form').ajaxForm({ dataType:'json', success: processJson }); function processJson(data) { alert(data.status); }
firebug看明明服务器端返回了,但我在页面上怎么获取不了json的数据.
还有firefox怎么弹出来个窗口提示我返回json数据要不要打开,别的浏览器没有这情况.
我是直接print 字符串返回json的.
response.setContentType("application/json; charset=utf-8"); response.setHeader("pragma", "no-cache"); response.setHeader("cache-control", "no-cache"); try { PrintWriter out = response.getWriter(); out.print(result); out.close(); } catch (IOException e) { e.printStackTrace(); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
哦。my god。怎么返回个JSON这么困难了,都要这么复杂的代码了。这样的返回,貌似就是下载东西的嘛。
根本不进success后的回调函数啊, json是通过struts2的插件处理的。表单里面没有文件域的话就OK
根本不进success后的回调函数啊, json是通过struts2的插件处理的。表单limian没有文件域的话
加一个
iframe:true, 官方里有说明
我已经解决了,不是你说的问题.
哈,那怎么解决的,分享下嘛。不过我之前这么写过,它就是贱的老启动下载。最后没法了,直接用其它方式返回的JSON
使用ajaxForm的话,必须以html格式返回json数据. 也就是 response.setContentType("text/html; charset=utf-8"); 这样返回的数据才能被设置到回调函数里面. 而且貌似格式必须是 "key":"value" 也就是双引号,单引号还不行.
JSON规范规定是必须是双引号,不能使用单引号!没看规范的……
试试看行吗