一种常用的上传文件(其实不止上传文件,所有的form提交都可以)无刷新的做法是在当前页面定义一个隐藏的宽高为0的iframe,然后把form提交的地址指向这个iframe,然后在服务器处理完之后回写一个<script>parent.callback();</script>这样的内容,来调用父窗口的脚本函数。
这样做要注意一个问题是服务器返回的contentType要设为text/html,不能为text/javascript,之前在代码中设置返回的contentType为text/javascript发现返回的页面中<script/>标签外面包裹了一层<pre></pre>标签,暂时还不知道原因。碰到这个问题苦闷了几天,一起没想到会是contentType的问题导致的。这里要谢谢http://bbs.csdn.net/topics/320020840这个问题。