word上传报object Object脚本错误

1、问题现象

网站user后台使用 word上传功能时报object Object脚本错误,如图所示:


2、问题原因及分析

使用chrome按F12诊断,发现400(bad request),初步判断应该是请求被拦截。

问题分析:

上传word文档成功返回时,会验证是否成功转换成html格式文件,如果生成,则可使用浏览器自带开发者工具(快捷键F12)监测调试运行,检查network网络监控,返回的user/addnews.aspx/LoadHtml路径为500错误。则分析IIS未解析json格式的数据,报object未找到对象错误。


3、解决办法

在IIS里添加json格式支持,实施方法根据IIS版本有所区别,具体如下:

①IIS6

1.MIME设置:请参照下图添加json类别:

文件扩展名:json  MIME类型(M):application/x-javascript

2.Script Map Handler设置(这步可选,有时候找不到这个文件):

还是在IIS的站点属性里,”主目录””应用程序设置””配置””映射””添加”,会打开”添加/编辑应用程序扩展名映射”的设置页面

扩展名:.json

运行文件:C:¥WINDOWS¥system32¥inetsrv¥asp.dll

动作:GET,POST

3.最后,别忘记选择对应的应用程序池,点击回收!

注:如果以上步骤一般只需设置【MIME设置】即可解决问题,如果全部设置完毕还是不行,请检查你的IIS有没有启用asp支持。


②如果为IIS 7以上版本:

1、iis必须开启asp支持,如果你的iis默认没有支持asp,

那么进入控制面板——程序——打开或关闭windows功能——internet信息服务——万维网服务——应用程序开发功能,选择asp,然后确定,如图:

2、开启asp支持后,进入IIS,打开”MIME类型“。

点击添加,扩展名写“.json”【不要引号】,MIME类型写”application/x-javascript“【不要引号】,然后确定,如图所示。

3、打开”处理程序映射“,点击”添加脚本映射“,请求路径写”*.json”【不要引号】,

可执行文件为“C:¥Windows¥System32¥inetsrv¥asp.dll”【通过浏览窗口定位该文件】,

名称写“JSON”,再打开请求限制——谓词——下列谓词之一,填写“GET,POST”【不要引号】,两次确定后会弹出提示,点击“是”,然后重启IIS,如图:

7、后续处理措施:如线上脏数据如何修复,如对用户造成的影响如何弥补等(Optional)

8、经验教训

下次配置word上传功能版本的系统时,请检查IIS相关配置JSON支持。