IIS7中Ajax.AjaxMethod无效的原因及解决方法
2023-06-13 09:15:03 时间
最近做用Ajax.AjaxMethod方法的时候,在asp.net的服务器下一切正常,用iis的时候,js中总是cs类找不到,我就郁闷了,折腾了大半天,终于找到错误原因了。
因为我发布网站用的是iis7,所以在web.config位置文件中<system.webServer><handlers>></handlers><system.webServer>里加入<addname="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>加上<addverb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/>节点
如果是IIS7,则需要在<system.webServer></system.webServer>里加上<addname="ajax"verb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/>
在CS程序中加上
复制代码代码如下:
因为我发布网站用的是iis7,所以在web.config位置文件中<system.webServer><handlers>></handlers><system.webServer>里加入<addname="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>加上<addverb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/>节点
如果是IIS7,则需要在<system.webServer></system.webServer>里加上<addname="ajax"verb="POST,GET"path="ajax/*.ashx"type="Ajax.PageHandlerFactory,Ajax"/>
在CS程序中加上
protectedvoidPage_Load(objectsender,EventArgse)
{
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是这个CS文件的类名
}
编写CS方法,方法前加上[Ajax.AjaxMethod()],
如果要使AjaxMethod里面能调用session,写成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)],
如:
[Ajax.AjaxMethod()]
publicstringGetAddress(stringUserID)
{
stringAddress="";
//dosomthingtogettheaddresshere
returnAddress;
}
注意方法要写成public,否则在JS里调用的时候会提示“不支持此属性或方法”
4、确保页面中有<formrunat="server"></form>标签。
5、ASPX的JAVASCRIPT中调用时加上类名,如:
varaddress=ClassName.GetAddress("123").value;
相关文章
- ajax实现跨域_js跨域请求的三种方法
- java实现ajax_Ajax&Java
- 浅谈SpringMVC后端与前端Ajax的五种交互方法详解程序员
- AJAX跨域问题解决方法(1)——禁止浏览器进行跨域限制详解编程语言
- 使用Ajax轻松访问和操作MySQL数据库(ajax访问mysql)
- 使用Ajax实现MySQL数据库操作(ajax操作mysql)
- 展现灵活性Ajax与MySQL的交互(ajax与mysql交互)
- 异步Ajax与Oracle数据库实现无缝连接(ajax连接oracle)
- AJAX中同时发送多个请求XMLHttpRequest对象处理方法
- php+AJAX传送中文会导致乱码的问题的解决方法
- ScriptManager.RegisterStartupScript()方法在ajax页面无效的解决方法
- JQuery.ajax传递中文参数的解决方法推荐
- IE中jquery.form中ajax提交没反应解决方法分享
- ajax页面无刷新IE下遭遇Ajax缓存导致数据不更新的问题
- ASP.NETMVC使用Ajax的辅助的解决方法
- Ajax异步提交表单数据的说明及方法实例
- AJAX的跨域访问-两种有效的解决方法介绍
- ajax返回的json内容进行排序使用sort()方法实现
- ASP.NET中TextBox使用Ajax控件显示日期不全的问题解决方法
- 禁止ajax缓存获取程序最新数据的方法
- ajax下载smartupload的内容无法显示汉字的解决方法
- ajax请求乱码的解决方法(中文乱码)
- ajax的responseText乱码的问题的解决方法
- 通过Jquery的Ajax方法读取将table转换为Json
- 浅析jQuery中调用ajax方法时在不同浏览器中遇到的问题
- ajax回调函数中使用$(this)取不到对象的解决方法
- JQuery的Ajax中Post方法传递中文出现乱码的解决方法
- ASP.NET中MVC使用AJAX调用JsonResult方法并返回自定义错误信息
- JQuery中使用ajax传输超大数据的解决方法