IIS7中Ajax.AjaxMethod无效的原因及解决方法
更新时间:2013年07月28日 16:18:40 作者:
使用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;
您可能感兴趣的文章:
相关文章
细数Ajax请求中的async:false和async:true的差异
下面小编就为大家带来一篇细数Ajax请求中的async:false和async:true的差异。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2017-02-02
AJAX请求是否真的不安全?谈一谈Web安全与AJAX的关系
Ajax中没有固有的安全漏洞,但是对该技术向量的适配显著地改变了网络应用的开发途径以及方法论。AJAX请求的安全性是大家经常会谈论的一个话题,AJAX请求是否真的不安全?下面这篇文章就来给大家详细谈一谈Web安全与AJAX关系的相关资料,需要的朋友可以参考下。2018-01-01
深入浅析AjaxFileUpload实现单个文件的 Ajax 文件上传库
jQuery.AjaxFileUpload.js是一款jQuery插件,用于通过ajax上传文件。本文给大家介绍AjaxFileUpload实现单个文件的 Ajax 文件上传库,对此感兴趣的朋友一起学习吧2016-04-04


最新评论