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

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

原文地址:https://www.cnblogs.com/lee0201/p/1754268.html