🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
### 1、问题描述 使用chrome浏览器,采用PKI方式登录,JS报错:`JITDSignOcx.setXXX is not a function`。 ### 2、问题原因 PKI默认不支持chrome浏览器,需要进行一些配置。 ### 3、解决方案 #### 3.1、安装chrome45 32位以下版本的浏览器 吉大正元PKI目前只支持chrome45以下的32位浏览器版本,对chrome40以下版本和chrome40-44版本的支持的操作方式不同。 ##### 3.1.1 chrome40以下的32位版本 - 卸载已经安装的chrome浏览器,卸载时候勾选删除所有数据(如有重要的书签请先保存); - 安装`chrome39.0.2171.95 m`版本的浏览器。 ##### 3.1.2 chrome40-chrome44 32位版本 - 卸载已经安装的高于chrome44的浏览器; - 安装chrome45以下的版本,可支持导入之前的书签; - 安装完以后,访问`chrome://flags/#enable-npapi`,点击启用,如下图所示: ![](https://box.kancloud.cn/9845a2c99ed6c780e08f9e5506af9567_737x466.jpg) - 重启chrome浏览器。 #### 3.2、安装多浏览器支持插件 以管理员安装`JITComVCTK_S_all-in-1.exe`可执行文件。 #### 3.3、需要浪潮协助修改`login.jsp`中以下内容 ``` <object id="JITDSignOcx" classid="clsid:B0EF56AD-D711-412D-BE74-A751595F3633" codebase="JITComVCTK_S.cab#version=2,0,24,40"></object> ``` 将以上代码修改为: ``` <%String browser=request.getHeader("User-Agent"); if(browser.indexOf("MSIE")>=0){%> <object id="JITDSignOcx" classid="clsid:B0EF56AD-D711-412D-BE74-A751595F3633" codebase="JITComVCTK_S.cab#version=2,0,24,40"></object> <%}else{%> <embed id="JITDSignOcx" type="application/x-jit-sign-vctk-s-plugin-boc" width="0" height="0"> <%}%> ``` 说明:还需要替换获取PKI信息的JS代码;替换以上代码后,Firefox也支持PKI登录。 #### 3.4、替换必要的插件 使用`bsdemo/WebContent/JITComVCTK.cab`和`bsdemo/WebContent/JITComVCTK_S.cab`替换原有的这两个插件。 #### 3.5、使用chrome访问时候运行插件运行 使用chrome浏览器访问页面时候,浏览器会提示是否允许插件运行,选择始终允许使用插件即可,如下图所示: ![](https://box.kancloud.cn/bc5502610f20136c04cfc62426b71952_686x373.jpg) #### 3.6、chrome下测试结果 ![](https://box.kancloud.cn/2bc4e99b78d2609c74559a004c09567e_1256x326.png)