zoukankan      html  css  js  c++  java
  • Ajax 读取.ashx 返回404

       今天配合软件做个注册页面,验证用户名使用ajax验证的。

       .ashx 文件时放在网站目录的Ajax文件夹下的,在自己本地和测试服务器上都好好地,可是一到真实服务器就没效果,可以肯定问题不是出在程序上。

    代码
     1 /* ajax engine */
     2 function ajaxCheck(url,from,name, callBack) {
     3     var XHR;
     4     var date = new Date();
     5     var parameter = "from=" + from + "&name=" + name + "&timeStamp= " + date.getTime();
     6     try {
     7         try{
     8             XHR=new ActiveXObject("Microsoft.XMLHTTP");
     9         }catch(e){
    10                 try{
    11                     XHR=new XMLHttpRequest();
    12                 } catch (e){ }
    13         }
    14         XHR.open("POST",url);
    15         XHR.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    16         XHR.onreadystatechange = function(){
    17             if(XHR.readyState==4) {
    18                 if(XHR.status==200) {
    19                     if(callBack) callBack(from,XHR.responseText);
    20                 }
    21             }
    22         }
    23         XHR.send(parameter);
    24     }catch (e) {
    25         //alert(e.toString());
    26     }
    27 }
    28 
    29 
    30 /**
    31  * 判断用户名是否有重复,上面已经引入方法
    32  */    
    33 function checkAccount(statusID,oID,errorID) {
    34         ajaxCheck("/check_user.ashx",'name', $(oID).value, function(from, responseText){
    35         if(from == 'name'){
    36             var msg = "";
    37             if(responseText.search("1")>=0){
    38                 $innerHTML(errorID,"<img src=\"images/softReg/icon_error.gif\" />&nbsp;用户名已经存在");
    39                 inputStatus(statusID,"0",errorID);
    40                 isexists = true;
    41                 return;
    42             }else if(responseText.search("0")>=0){
    43                 $innerHTML(errorID,"");
    44                 inputStatus(statusID,"2",errorID);
    45                 isexists = false;
    46                 return true;
    47             }else{
    48                 $innerHTML(errorID,"<img src=\"images/softReg/icon_error.gif\" />&nbsp;异步通信错误");
    49                 inputStatus(statusID,"0",errorID);
    50                 isexists = false;
    51                 return;
    52             }
    53         }
    54     });
    55 }

        那到底什么问题了,只得远程着服务器,一步一步的alert,当alert(status) 时返回的竟是404,奇怪了,直接改成http://域名/Ajax/check_user.ashx,还是不行,直接反问这个页面有是正常的,能返回结果,网上找找,很多都是ashx没有添加映射,可是我的是正常的,路径已经这么死了,还是404,会不会是不再同一文件夹下的缘故呢?于是把check_user.ashx 移到网站根目录下,js路径改成/check_user.ashx问题解决,可是不知道为什么。。。。

        可能是IIS设置的问题,因为放到另一台服务器上是好的,可是实在找不出问题出在哪。

        总会水落石出的,先照着做吧。

  • 相关阅读:
    一张一驰,文武之道
    关于“未能加载……”和“web.config”
    DotText学习心得_1
    windows服务与事务
    AWR报告生成
    Java EE启示录
    跨入安全的殿堂读《Web入侵安全测试与对策》感悟
    用VS2005写Loadrunner测试脚本
    List of Free Programming books
    硬盘基础知多少
  • 原文地址:https://www.cnblogs.com/lee0201/p/1754268.html
Copyright © 2011-2022 走看看