IIS7中Ajax.AjaxMethod無效的原因及解決方法
更新時間:2013年07月28日 16:18:40 作者:
使用Ajax.AjaxMethod方法在asp.net的服務(wù)器下一切正常,用iis的時候,js中總是cs類找不到,具體的解決方法如下,遇到類似情況的朋友可以參考下
最近做用Ajax.AjaxMethod方法的時候,在asp.net的服務(wù)器下一切正常,用iis的時候,js中總是cs類找不到,我就郁悶了,折騰了大半天,終于找到錯誤原因了。
因為我發(fā)布網(wǎng)站用的是iis7,所以在web.config位置文件中<system.webServer><handlers>></handlers><system.webServer>里加入<add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />標(biāo)簽。
我的問題就是由于沒有注意到iis版本問題,導(dǎo)致的。。。悲了個??!
現(xiàn)在將整個方法要注意的都寫下來,也方便以后再看,希望的的遭遇能讓碰到同樣錯誤的人看到,省下一點寶貴的時間,畢竟生命誠可貴嗎,少費點神,少掉幾根毛,哈哈。。。
直接在網(wǎng)上找篇全面的,別罵我抄襲。。。
使用AjaxMethod要滿足一下幾點:
1、如果還沒有ajax.dll文件,就先下載一個來
2、將ajax.dll添加到項目引用中:在VS的解決方案資源管理器中右鍵點擊項目名稱--“添加項目引用”--瀏覽,找到ajax.dll確定
3、webCofig中<httpHandlers>加上<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>節(jié)點
如果是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里面能調(diào)用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里調(diào)用的時候會提示“不支持此屬性或方法”
4、確保頁面中有<form runat="server"></form>標(biāo)簽。
5、ASPX的JAVASCRIPT中調(diào)用時加上類名 ,如:
var address = ClassName.GetAddress('123').value;
因為我發(fā)布網(wǎng)站用的是iis7,所以在web.config位置文件中<system.webServer><handlers>></handlers><system.webServer>里加入<add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />標(biāo)簽。
我的問題就是由于沒有注意到iis版本問題,導(dǎo)致的。。。悲了個??!
現(xiàn)在將整個方法要注意的都寫下來,也方便以后再看,希望的的遭遇能讓碰到同樣錯誤的人看到,省下一點寶貴的時間,畢竟生命誠可貴嗎,少費點神,少掉幾根毛,哈哈。。。
直接在網(wǎng)上找篇全面的,別罵我抄襲。。。
使用AjaxMethod要滿足一下幾點:
1、如果還沒有ajax.dll文件,就先下載一個來
2、將ajax.dll添加到項目引用中:在VS的解決方案資源管理器中右鍵點擊項目名稱--“添加項目引用”--瀏覽,找到ajax.dll確定
3、webCofig中<httpHandlers>加上<add verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>節(jié)點
如果是IIS7,則需要在<system.webServer></system.webServer>里加上<add name="ajax" verb="POST,GET" path="ajax/*.ashx" type="Ajax.PageHandlerFactory, Ajax" />
在CS程序中加上
復(fù)制代碼 代碼如下:
protected void Page_Load(objectsender,EventArgse)
{
Ajax.Utility.RegisterTypeForAjax(typeof(ClassName));//ClassName是這個CS文件的類名
}
編寫CS方法,方法前加上[Ajax.AjaxMethod()],
如果要使AjaxMethod里面能調(diào)用session,寫成:[Ajax.AjaxMethod(HttpSessionStateRequirement.Read)] ,
如:
復(fù)制代碼 代碼如下:
[Ajax.AjaxMethod()]
public string GetAddress(string UserID)
{
string Address="";
//do somthing to get the address here
return Address;
}
注意方法要寫成public,否則在JS里調(diào)用的時候會提示“不支持此屬性或方法”
4、確保頁面中有<form runat="server"></form>標(biāo)簽。
5、ASPX的JAVASCRIPT中調(diào)用時加上類名 ,如:
var address = ClassName.GetAddress('123').value;
您可能感興趣的文章:
相關(guān)文章
Axios和Ajax的區(qū)別是什么(詳細(xì)介紹)
ajax技術(shù)實現(xiàn)了局部數(shù)據(jù)的刷新,axios實現(xiàn)了對ajax的封裝,axios有的ajax都有,ajax有的axios不一定有,總結(jié)一句話就是axios是ajax,ajax不止axios,本文對Axios和Ajax的區(qū)別是什么給大家講解的非常詳細(xì),需要的朋友一起看看吧2023-10-10ASP.NET與Ajax的實現(xiàn)方式小總結(jié)
Ajax 應(yīng)該不是一項技術(shù),是一種思想而已,跟 ASP.NET 以及其它 Web 開發(fā)語言沒有什么太大關(guān)系,這里只是談?wù)?ASP.NET 中目前使用的 Ajax 技術(shù)以及其它一些實現(xiàn) Ajax 的優(yōu)秀框架。感興趣的朋友跟著小編一起學(xué)習(xí)asp.net與ajax的實現(xiàn)方式2015-09-09那些年,我還在學(xué)習(xí)Ajax 學(xué)習(xí)筆記
Ajax不用說,每個做web開發(fā)的同志都知道,因為它是學(xué)習(xí)web開發(fā)必經(jīng)之路,不管你是做asp.net,還是javaWeb,還是PHP2012-03-03ajax實現(xiàn)從后臺拿數(shù)據(jù)顯示在HTML前端的方法
今天小編就為大家分享一篇ajax實現(xiàn)從后臺拿數(shù)據(jù)顯示在HTML前端的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax
這篇文章主要介紹了甩掉ashx和asmx使用jQuery.ajaxWebService請求WebMethod簡練處理Ajax的相關(guān)資料,需要的朋友可以參考下2016-08-08用ajax實現(xiàn)預(yù)覽鏈接可以看到鏈接的內(nèi)容
用CSS設(shè)置預(yù)覽彈出窗口的樣式、用JavaScript進(jìn)行服務(wù)器請求并且顯示彈出窗口,需要的朋友可以參考下2014-08-08AJAX初級應(yīng)用-RSS無刷新聚合器的代碼與下載
AJAX初級應(yīng)用-RSS無刷新聚合器的代碼與下載...2007-03-03