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>-->

最后,刷新,不报错了,可以正常获取到数据了,问题就这样奇迹般的解决了,搞了一天了,终于搞好了。。。。

原文地址:https://www.cnblogs.com/zhengwei-cq/p/8757907.html