前端代码:
$("#ocrform").ajaxSubmit({ url: '<c:url value='/loanapply/applyerOcrCheckUpload.html'/>', type: "POST", dataType:"json", contentType: "application/x-www-form-urlencoded; charset=utf-8", async: false, success: function (data) { if(data!=null && data.cardName && data.idnum){ $("#name").val(data.cardName); $("#certNo").val(data.idnum); }else{ alert("<fmt:message key='image.identify.fail' />"); } }, error:function(e){ //console.log(e); } })
后端返回json数据的时候,刚开始设置了response.setContentType("application/json;charset=utf-8");,其他浏览器都可以,但是ie8浏览器会弹出如下框
后来没办法,尝试了网上的说法,将response.setContentType("application/json;charset=utf-8");,改为response.setContentType("text/ html;charset=UTF-8");,
但是ajax跳转到了error,大致说我返回的不是json数据,
最终,将response.setContentType("text/ html;charset=UTF-8");改为response.setContentType("text/ json;charset=UTF-8");就好了
总结:ie8浏览器不支持application/json;,所以,如果要兼容ie8浏览器,还是写成response.setContentType("text/ json;charset=UTF-8");吧,
友情提示:utf-8一定要设置,否则,ajax返回json数据,前台获取ie8浏览器可能会出现乱码
特此记录我的心酸历程!