IIS7中Ajax.AjaxMethod无效的原因及解决方法
程序员文章站
2022-05-28 12:29:39
最近做用ajax.ajaxmethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了。...
最近做用ajax.ajaxmethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了。
因为我发布网站用的是iis7,所以在web.config位置文件中<system.webserver><handlers>></handlers><system.webserver>里加入<add name="ajaxmethod" type="ajax.pagehandlerfactory, ajax" verb="post,get" path="ajax/*.ashx" />标签。
我的问题就是由于没有注意到iis版本问题,导致的。。。悲了个剧!
现在将整个方法要注意的都写下来,也方便以后再看,希望的的遭遇能让碰到同样错误的人看到,省下一点宝贵的时间,毕竟生命诚可贵吗,少费点神,少掉几根毛,哈哈。。。
直接在网上找篇全面的,别骂我抄袭。。。
使用ajaxmethod要满足一下几点:
1、如果还没有ajax.dll文件,就先下载一个来
2、将ajax.dll添加到项目引用中:在vs的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定
3、webcofig中<httphandlers>加上<add verb="post,get" path="ajax/*.ashx" type="ajax.pagehandlerfactory, ajax"/>节点
如果是iis7,则需要在<system.webserver></system.webserver>里加上<add name="ajax" verb="post,get" path="ajax/*.ashx" type="ajax.pagehandlerfactory, ajax" />
在cs程序中加上
protected void page_load(objectsender,eventargse)
{
ajax.utility.registertypeforajax(typeof(classname));//classname是这个cs文件的类名
}
编写cs方法,方法前加上[ajax.ajaxmethod()],
如果要使ajaxmethod里面能调用session,写成:[ajax.ajaxmethod(httpsessionstaterequirement.read)] ,
如:
[ajax.ajaxmethod()]
public string getaddress(string userid)
{
string address="";
//do somthing to get the address here
return address;
}
注意方法要写成public,否则在js里调用的时候会提示“不支持此属性或方法”
4、确保页面中有<form runat="server"></form>标签。
5、aspx的javascript中调用时加上类名 ,如:
var address = classname.getaddress('123').value;
因为我发布网站用的是iis7,所以在web.config位置文件中<system.webserver><handlers>></handlers><system.webserver>里加入<add name="ajaxmethod" type="ajax.pagehandlerfactory, ajax" verb="post,get" path="ajax/*.ashx" />标签。
我的问题就是由于没有注意到iis版本问题,导致的。。。悲了个剧!
现在将整个方法要注意的都写下来,也方便以后再看,希望的的遭遇能让碰到同样错误的人看到,省下一点宝贵的时间,毕竟生命诚可贵吗,少费点神,少掉几根毛,哈哈。。。
直接在网上找篇全面的,别骂我抄袭。。。
使用ajaxmethod要满足一下几点:
1、如果还没有ajax.dll文件,就先下载一个来
2、将ajax.dll添加到项目引用中:在vs的解决方案资源管理器中右键点击项目名称--“添加项目引用”--浏览,找到ajax.dll确定
3、webcofig中<httphandlers>加上<add verb="post,get" path="ajax/*.ashx" type="ajax.pagehandlerfactory, ajax"/>节点
如果是iis7,则需要在<system.webserver></system.webserver>里加上<add name="ajax" verb="post,get" path="ajax/*.ashx" type="ajax.pagehandlerfactory, ajax" />
在cs程序中加上
复制代码 代码如下:
protected void page_load(objectsender,eventargse)
{
ajax.utility.registertypeforajax(typeof(classname));//classname是这个cs文件的类名
}
编写cs方法,方法前加上[ajax.ajaxmethod()],
如果要使ajaxmethod里面能调用session,写成:[ajax.ajaxmethod(httpsessionstaterequirement.read)] ,
如:
复制代码 代码如下:
[ajax.ajaxmethod()]
public string getaddress(string userid)
{
string address="";
//do somthing to get the address here
return address;
}
注意方法要写成public,否则在js里调用的时候会提示“不支持此属性或方法”
4、确保页面中有<form runat="server"></form>标签。
5、aspx的javascript中调用时加上类名 ,如:
var address = classname.getaddress('123').value;
推荐阅读
-
VIVO手机上del键无效OnKeyListener不响应的原因及解决方法
-
AutoCAD打开文件显示图形文件无效的原因及解决方法
-
浅析jquery ajax异步调用方法中不能给全局变量赋值的原因及解决方法
-
IIS启用GZIP压缩js、css无效的原因及解决方法
-
电脑使用浏览器中打开网页提示请不要使用非法的url地址访问的原因及解决方法
-
IIS7中Ajax.AjaxMethod无效的原因及解决方法
-
win10系统打开图片提示无效的注册值的原因及两种解决方法图文教程
-
IIS7报500.23错误的原因分析及解决方法
-
vue中设置height:100%无效的问题及解决方法
-
直接双击启动tomcat中的startup.bat闪退原因及解决方法