在通过Ajax请求获取Binary类型数据的时候,大部分情况下都是好的,返回的结果都是Arraybuffer类型,但是某些Chrome的版本(44.0.2403.157 m),返回的却是String类型。之前一直没空处理,所以都是用升级浏览器的方式解决,这次下决心要看看是什么问题。查了好久,发现是ajax请求的时候无法设置 responseType, responseType的值一直是“”,然后各种查资料啊什么的,都没有找到解决的办法, 发现Chrome调试窗口中的变量监视下,responseType会显示 illegal invocation的一个Exception。然后又是一顿查资料,还是没能查到。最终还是用一个取巧的方法来解决,如果哪位朋友知道是什么问题的话,还望告知!
解决的方式是用fetch代替ajax,为了兼容某些浏览器,需要先判断fetch是否定义
'undefined' !== typeof fetch
这样在fetch可以用的时候就用fetch,不能用就用ajax。双重保险。。。