晨鸟科技

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

IIS7.5 AjaxMethod 未定义解决办法

[复制链接]
跳转到指定楼层
楼主
发表于 2010-9-13 17:54:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
首先,交代下背景:
, F- Q4 k: J1 I" O最近调试作业智能批改系统,其中在作业批改页用到了一点 ajax 技术(教师修改主观类题目分数需局部刷新),今天测试发现程序上传到windows server 2008 r2 的服务器上出现“AjaxMethod 未定义”错误,如下图:
0 I. V5 F/ B2 c3 D6 f9 m1 G" {" B1 Z* u; w- g
0 D5 n" f  t4 I, Y! d9 h6 V* f
网上未找出此问题解决方法,纠结半天,最后修改服务器配置,问题解决...6 a+ T. l; @. @9 e: o& |
8 P1 Y' z/ U) Q! z
下面总结解决方法:* m1 \& n* m; ?$ R
先看页面js代码
  1. <script language="javascript">
    % i9 v! Y' _6 J" `
  2.     var questionID;0 F# [9 K5 F# N+ v6 \! q  T0 c
  3.     function $(ID)
    / z# s3 Q# [( a! C% h7 G
  4.         {
    $ w) e2 F" I1 C: l' V- H
  5.             if(document.all)
    ; ]" _$ A3 i+ B/ Y* L$ B* ]3 |
  6.                 return document.all[ID];* v, i1 I& Z+ {' Z1 M
  7.             else if(document.getElementById)
    ) f; k) N0 g/ F2 u# Q
  8.                 return document.getElementById(ID);/ P6 k) v: x  ?7 w  {3 w+ o0 n
  9.             else
    : }" ~( F& F  _2 ?: Z$ R' a/ ]: S
  10.                 return null;, r- O" x! t, h- A6 d) u  s
  11.         }
    $ ^; }! R3 n# O7 P! s+ G( D

  12. $ b  w* Z+ ]' @- G# T
  13.     function callback_test1(res)+ n+ c( P0 x+ `. [% C$ m& ?
  14.     {0 Y; @- C4 j/ w8 ], R8 c+ }( H
  15.         if(res.value =="-1")
    : \+ u7 f: f$ K  P& I
  16.         {
      \8 K4 Y* O' W+ S
  17.             alert("必须输入数字");
    & e$ V: A% y. d. R( x$ s0 [
  18.         }% S' o) J0 P* u8 L2 |9 S
  19.         else if(res.value == "-2")4 y( {4 `' Y! j4 g0 r+ I
  20.         {
    ' o" l# o/ X% d
  21.             alert("得分不能超过题目标准得分");
    : W$ w; N  Q* c0 H
  22.         }* |# o+ g" ^8 r; O
  23.         else{/ U1 ]" T, A6 ^+ a
  24.             var array  = res.value.split(",");
    " }' `8 m4 N" |+ `  u" o6 A
  25.             document.getElementById("mark"+questionID).innerHTML = array[0];
    7 l. n: ?9 [8 O$ J/ D: }. k% t
  26.             document.getElementById('totalMark').innerHTML = array[1];
    0 S( G5 k7 `& W8 g; v4 w
  27.             alert("修改成功!");
    , H0 K. S; M* S$ `* L
  28.         }0 O3 [+ W! j8 B/ N  p
  29.             : }0 i; v; w) O; A3 H# k' e
  30.     }
    3 k5 K5 X3 N4 c5 w& a2 s( ]
  31.     function totalMark(spiID); Q$ B0 X" b" W% H7 }- J" b
  32.     {
    9 ~/ b. `# @8 k( D
  33.         AjaxMethod.TotalMark(spiID,callback_totalMark);
    + l3 r! t% v0 ?" p- l# c
  34.     }
    ( Q7 \! ^: o) _$ ~& n* h* m
  35.     function editMark(btnID)8 }6 w7 a$ S& y2 {
  36.     {
    ! p8 C% g3 o* l: A
  37.         var txtID = "txt"+btnID.substring(3,btnID.length);4 f) m+ ~4 `1 a0 G+ G5 f! Q
  38. " M1 r6 r' U# C) n" [0 p
  39.         var studentPaperID = document.all.hiddenSpi.value;
    , e6 p# t% o4 E" p' @' \# x$ r$ A
  40.         questionID = btnID.substring(3,btnID.length);
    # Y6 L" i# b1 X4 w7 x
  41.             6 p2 G$ M" b( z0 P/ f3 K
  42.         var mark = parseInt($(txtID).value);* D) c% e$ n' f
  43.        AjaxMethod.EditDiscussMark(studentPaperID,questionID,mark,callback_test1);       
    & }* I( K$ r( G
  44.     }2 q" s  z% t/ ~' O, h/ {4 [- u! g) s9 C
  45. </script>
复制代码
1.页面.cs文件中的Page_Load须包含
  1.                         Ajax.Utility.RegisterTypeForAjax(typeof(Ajax.AjaxMethod));  a  s6 u8 o6 {: e+ o, d
复制代码
2.AjaxMethod类中添加
  1.         [Ajax.AjaxMethod(Ajax.HttpSessionStateRequirement.ReadWrite)]
    ( _& Z" ]. l7 n) B; [
复制代码
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"/>
    ' N% E5 x; ]! U2 q6 s5 |

  2. & h+ z/ @6 F2 W
  3.       <add name="AjaxMethod" type="Ajax.PageHandlerFactory, Ajax" verb="POST,GET" path="ajax/*.ashx" />  //IIS版本为7.0以上添加1 g2 ]; b- O( r1 a+ b
复制代码
5.打开IIS,点击“应用程序池”——右键“高级设置”——启用32位应用程序“True”
7 v$ {, O2 R, Z: S! b& t
6 y* s. @: S+ S
5 y& G4 e4 J' L问题解决

本帖子中包含更多资源

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

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

本版积分规则

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

GMT+8, 2025-6-22 07:39 , Processed in 6.067971 second(s), 8 queries , Wincache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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