使用Ajax.dll 时 抛脚本错误 “AjaxMethod 未定义”
在测试服务器上没有任何问题 (操作系统2003+IIs6),放到正式环境就有脚本错误(Windows2008+IIS7.0)
关键在于IIS的问题。
有几处需要注意:
(1)注册AjaxMethod:
protected void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
Ajax.Utility.RegisterTypeForAjax(typeof(AirTicketManager.AjaxMethod));
}//如果没有注册这句话也会抛如题目的错误
(2)在webconfig中配置(忘记是手动配置还是引用时候自己生成的了)
<system.web>
<httpModules>
<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>
</httpModules>
</system.web>
<system.webServer> <handlers> </handlers></system.webServer>
上面在IIS6.0中是这样配置的 ,如果少了这句话也会抛出如题目的脚本错误
(3)IIS版本问题
如果上述问题都不存在,确保ajax.dll也存在,但仍然提示“AjaxMethod 未定义”,就要考虑IIS版本问题了
IIS7的话需要把刚才在webconfig里面的那句在system.webServer里面也加上一句
<system.webServer>
<handlers>
<add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />
</handlers>
</system.webServer>
问题就解决了,花了我大半天的时间啊