晨鸟科技

 找回密码
 注册
搜索
查看: 12066|回复: 0
打印 上一主题 下一主题

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:
- }5 p8 O, [, u0 P" w6 I$ I最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:
& b& a- D4 R' C5 q% s) ]
% [% x/ [2 h2 a+ a
9 Q# ^  }' i+ P( Q, G4 A( @7 Y网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...
! e+ w+ t' W0 U% M* x) f. G% ~, `0 y' ?+ C1 |1 x' O
下面总结解决方法:0 x, [) X2 I' Z2 V
先看页面js代码
  1. <script language="javascript">8 |( f8 F5 c9 w8 Z3 q) R
  2.     var questionID;( Q5 D8 j4 A+ y: _
  3.     function $(ID)
    3 Z) o9 ~2 U$ h6 ?
  4.         {$ b  K" r, o; k( f
  5.             if(document.all)
    , _( @, Z) ?& m) N
  6.                 return document.all[ID];
    # R) x0 P8 e3 o1 ]* c2 x! a6 ^& c
  7.             else if(document.getElementById)  F* `+ _$ Q! P& b0 ~! j
  8.                 return document.getElementById(ID);
    4 b: e% _6 s+ n  F3 Z
  9.             else
    9 A& Z$ J* L/ i
  10.                 return null;! n7 L' w, A; n5 T( v- p
  11.         }
    ) z3 v* m+ r9 G& \, o0 a( H

  12. 9 Q$ j8 t" K( w- T- R- x
  13.     function callback_test1(res)  m" C  W0 g7 B2 W& w; u/ ?
  14.     {
    6 E* J, j3 r5 Y5 P
  15.         if(res.value =="-1")+ T$ q6 S2 k# o( G0 ~7 F
  16.         {
    # [$ @' `5 q4 C8 o1 C* H( y
  17.             alert("必须输入数字");
    . t! [, c; p9 O& _0 K
  18.         }
    & I+ \4 j. o* L& A
  19.         else if(res.value == "-2")' V6 S3 u; ?! o) K
  20.         {
    . g4 d, v8 O1 b0 i* B
  21.             alert("得分不能超过题目标准得分");
    : u4 A# s' Q0 K
  22.         }
    5 p; r3 L/ P4 g3 ^# g
  23.         else{
    ) w! d- e3 g- ?5 q% P. s7 c* u
  24.             var array  = res.value.split(",");
    % r8 u8 r8 i' v8 I4 G3 M5 X+ t: X( t
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];3 V5 A4 o; h" S# b# [9 @
  26.             document.getElementById('totalMark').innerHTML = array[1];
    7 z6 A; \+ O8 P9 i1 x: R4 t" c  B
  27.             alert("修改成功!");; N" R) j! ]: }
  28.         }- V; ~# c+ c0 K, R/ b5 H' C
  29.             ! t% W, r0 Q9 X2 E; |% r; X; t$ Z
  30.     }
    % q- U6 @2 w3 j# V0 D) q' t# d: X
  31.     function totalMark(spiID)
    ; n" t8 t# C; G8 v
  32.     {
    8 ^: z, c6 K% D& V5 G  }
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);& }4 _6 s  r$ U/ Y7 v( H7 W
  34.     }
    ; I$ `* g# i" {
  35.     function editMark(btnID)+ H  u; ~3 _3 `! F& @1 E& P
  36.     {
    - X2 E# N  f. o$ j/ A; K
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);1 y, E5 @# |# d, k% J7 S
  38. 1 R+ l# q5 p  w$ w
  39.         var studentPaperID = document.all.hiddenSpi.value;0 ~; K8 y( E3 }2 b6 j' Z
  40.         questionID = btnID.substring(3,btnID.length);
    . y& V- v1 W( p( h
  41.             " p, j/ N* K6 g3 u
  42.         var mark = parseInt($(txtID).value);
    " o4 ]2 Z& _& @2 w1 L2 s
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);       
    & t' |* J+ m3 T5 }9 J% y7 ^& j
  44.     }
    9 j6 |# w+ D9 B- e$ \7 a
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));
    - @( v# F) R5 g9 Y7 w4 h
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    $ [3 x0 ?$ J8 z. j
复制代码
3.Global.asax的Application_Start方法添加
  1. Ajax.Utility.HandlerPath = "csharpwrapper";
复制代码
4.web.config中的<httpHandlers>和<handlers>分别添加
  1.                         <add verb="POST,GET" path="csharpwrapper/*.ashx" type="Ajax.PageHandlerFactory, Ajax"/>3 @$ @5 l5 F' c1 M
  2. 4 s( b4 l. M+ Y4 _' B! Y
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加
    & g0 y9 F- j, n# q
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
: g8 G, S& f( [1 n/ T2 t
, x# ~5 Z6 C: L
7 A7 u: B2 E  b' D) {3 ?" k问题解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|晨鸟科技 ( 沪ICP备09012675号 )

GMT+8, 2025-8-13 20:55 , Processed in 4.334684 second(s), 9 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表