- 使用ajax上傳文件需要兼容IE8就需要使用ajaxSubmit,所屬於 jquery.form.js
- 前台請求ajaxSubmit的基本使用形態
$("#queryForm").ajaxSubmit({ url: "/***/***", type: "post", dataType: "json", success: function(data){ //根據data返回數據邏輯判斷 } });
- 如果使用jetty啟動項目,springmvc架構按照正常的返回string,但是需要指定一下response的響應體內容類型
response.setContentType("text/html;charset=utf-8");
設置為text,不然IE8會不清楚你返回是什么格式的內容,直接就提示下載文件
- 如果使用tomcat啟動項目,上面的設置就沒什么卵用,詳解如下
@ResponseBody @RequestMapping(value="/***") public void addAnnex(HttpServletResponse response){ //業務邏輯操作 response.setContentType("text/html;charset=utf-8"); response.getWriter().print("這里面放要返回前台的內容,string或者格式化的json"); }
調用方法后不直接返回任何東西,直接把內容傳到response中,前台ajax照樣正常解析,不給IE8留下任何機會
- 根源所在是因為IE8發起請求后台響應的內容類型不一致,也是老版本瀏覽器的弊端所在,但技術激進的情況下也要考慮業務受眾用戶群體,也不能不要IE8,在之后的配置中jetty和tomcat的機制不同,使用jetty的配置在tomcat中沒生效,畢竟tomcat相對與jetty來說也是個老大哥了,今天的總結到此結束,做什么東西,找到問題根源所在才能更進一步,共勉