Aaja.pro 未定义
问题描述:安装新系统后,将代码迁至新系统,所有用到ajaxpro框架调用ajax方法时均报“xx未定义”的错:
解决问题的过程 :
1、看看你在前台调用的方法的命名空间,方法名和后台的是否对应。在后台是否注册了。对的一B啊,没有问题啊,继续往下找原因。
前台调用的方法:OilDigital.CGGL.Web.PersonInfoCenter.basicInfo.UpdatePersonInfoByXmbm(xmbm, birDate, birPlace, phone, pinyin, nation, sex, gzdw, positionLevel, feeGrade, Position, ddlZc);
后台的方法:
namespace OilDigital.CGGL.Web.PersonInfoCenter
{
public partial class basicInfo : BasePage
{
protected void Page_Load(object sender, EventArgs e)
{
//注册
AjaxPro.Utility.RegisterTypeForAjax(typeof(basicInfo));
}
[AjaxMethod]
public void UpdatePersonInfoByXmbm(string xmbm, string birDate, string birPlace, string phone, string pinyin, string nation, string sex, string gzdw, string positionLevel, string feeGrade, string positionName, string ddlZc)
{
}
}
}
2、看看你的前台是否加了<form id="form1" runat="server">,我的加了,这个忽略
3、配置文件检查:
我之前的配置文件中的一个节点是这样的:
<location path="ajaxpro">
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
</httpHandlers>
</system.web>
</location>
这个配置在我的另一台电脑上面是可以的,我也不知道是什么原因,就是这个电脑上面不行,我以为是IE11的问题,但是我的同事用IE11访问又是没有问题的。这就很尴尬了。。。
然后我果断的将上面的节注掉了,换了下面的这样的节:
<system.webServer>
<directoryBrowse enabled="true" />
<handlers>
<add name="ajaxpro" verb="*" path="ajaxpro/*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
</handlers>
<validation validateIntegratedModeConfiguration="false" />
</system.webServer>
//注掉了。。。
<!--<location path="ajaxpro">
<system.web>
<httpHandlers>
<add verb="*" path="*.ashx" type="AjaxPro.AjaxHandlerFactory,AjaxPro.2" />
</httpHandlers>
</system.web>
</location>-->
最后,刷新,不报错了,可以正常获取到数据了,问题就这样奇迹般的解决了,搞了一天了,终于搞好了。。。。