• 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设置的问题,因为放到另一台服务器上是好的,可是实在找不出问题出在哪。

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

  • 相关阅读:
    打印沙漏
    秋季学期学习总结
    反射
    线程(二)join、yeild、同步(synchronized:同步块,同步方法;,Lock)、非线程安全单例模式、线程安全单例模式、多线程售卖电影票处理、通过线程依次打印A、B、C、wait和sleep
    线程(一)
    红包计算的方法(通过2倍指数法进行计算,通过线性切割法计算)
    Math常用类、Date类、Calendar类、两者相互转换
    Java包(访问修饰符的范围)、String字符串、StringBuilder类、基本类型和引用类型
    编写一个系统(登录、注册、验证用户名密码和验证码、覆盖存储用户)
    递归的使用:调用方法自身
  • 原文地址:https://www.cnblogs.com/lee0201/p/1754268.html
Copyright © 2020-2023  润新知