DWZ UI框架下,通过dialog链接打开窗口,在窗口中用POST方式提交表单后,服务端返回的JSON能够正常解析,但仍有弹出窗口下载返回JSON的文件;
分析DWZ的dwz.ajax.js,发现通过ajax方式提交表单时,datatype为json,开始以为是datatype导致不能解析服务端返回的信息,但试过删除datatype及改为text等类型,仍然有弹出下载提示。
服务端用的是.Net的MVC模式,返回类型为JsonResult,所以返回的JSON是不会有问题的。后来也试过返回json(result,"application/json")和json(result,"text/plain")也不能解决问题。
所以最后能够排除设置的问题和返回数据的格式问题。
后来仔细查看DWZ的文档,发现AJAX提交表单的示例是这样的,
<form method="post" action="url" class="pageForm required-validate" onsubmit="return validateCallback(this);">
按照上面的格式修改了我的代码(加上pageForm的class),最后发现提交表单后就不会再提示JSON下载了。
找遍了DWZ的所以js文件,都没有发现class加上pageForm会执行什么操作,所以没有找到这样设定能解决问题的具体原因。