关于Sys未定义错误

在网上搜一下sys未定义, 能搜出"无数"篇文章来, 可是里面大多数都不外乎教人改web.config里的xxhandler 节, 改IIS 里的那个权限配置, 这两种做法不知道对多少人有效, 反正是从来没有对我有效过.

我自己遇到的sys未定义经过很艰苦的试验, 终于找到了解决的办法, 可是我又不知道对别人是否有效----=_=#

首先, 从vs2003 升级上来的系统, 很可能会有这个问题:

<xhtmlConformance mode="Legacy"/>

 web.config中的这个配置会直接导致ajax 功能无效, 并且出现sys未定义的错误, 所以, 至少要把mode改成Transitional.

此外 , web.config中的

<globalization requestEncoding="GB2312" responseEncoding="GB2312"/>

可能会导致sys 未定义, 因为ajax.net 1.0 设计时没有兼容各种编码格式, 所以如果用utf-8 编码, 是没有问题的, 但是用中文编码, 就可能会出问题, 同样, 在页面上的page指令中, 如果有codepage="936" 之类的指令, 也可能会造成影响.

解决的办法是:

<globalization uiCulture="en" requestEncoding="GB2312" responseEncoding="GB2312"/>

这就既可以保证页面使用中文编码, 又能使ajax能正常工作.

有时候, 整个系统的web.config 无法随意更改, 可以采用一种临时方法:
由于web.config是可以各级目录自定义的, 所以可以在系统中建立一个目录 , 它只覆盖上述两个属性, 则这个目录中的文件就可以不受根目录中的web.config的影响了.

---------------------------------------------

作者:夏狼哉
博客:http://www.cnblogs.com/Moosdau

如需引用,敬请保留作者信息,谢谢

原文地址:https://www.cnblogs.com/Moosdau/p/1301049.html