2009-12-04 77 views
0

两周前我继承了一些使用jquery.ajax方法连接到.NET Web服务的代码。下面是一段代码给我麻烦......jquery ajax错误在调试模式之外找不到url

if (MSCTour.AppSettings.OFFLINE !== 'TRUE') { 
     $.ajax({ 
      url: url, 
      data: json,     
      type: "POST",     
      contentType: "application/json", 
      timeout: 10000, 
      dataType: "json", // not "json" we'll parse 
      success: function(res){     
       if (!callback) { 
        return; 
       } 

       /* 
       // *** Use json library so we can fix up MS AJAX dates 
       */ 
       var result = ""; 

       if (res !== "") { 
        try { 
        result = $.evalJSON(res); 
        } 
        catch (e) { 
        result = {}; 
        bare = true; 
        } 
       }      
       /* 
       // *** Bare message IS result 
       */     
       if (bare) {      
        callback(result); 
        return; 
       } 

       /* 
       // *** Wrapped message contains top level object node 
       // *** strip it off 
       */ 
       for (var property in result) { 
        callback(result[property]); 
        break; 
       } 
      }, 
      error: function(xhr,status,error){ 
       if (status === 'parsererror') {} 
       else {return error;} 
      }, 
      complete: function(res, status){     

       if (callback) { 
        if ((status != 'success' && status != 'error') || status === 'parsererror' || (status === 'timeout' && res !== '')) { 
         try { 
         result = $.secureEvalJSON(res); 
         } 
         catch (e) { 
         result = {}; 
         bare = true; 
         } 
         callback(res); 
        } 
       } 
       return; 
      } 
     }); 
    } 

此时的url变量等于/testsite/service.svc/GetItems

现在,这里是我的问题在于......

当通过Visual Studio将本站从调试模式运行时,我没有任何问题通过Web服务连接到数据库并查看我的所有数据以查看和更新​​。当我浏览同一站点的普通Web服务器时,在同一页面上,没有数据显示出来。当我在萤火虫上面的代码的错误部分中断时,这是我在下面链接的图像中获得的信息。

link text

我得到什么似乎是一个404错误,但是当我看到服务器的所有文件都在正确的地方......再加上这一事实,它在调试模式下工作时, ,我想我正在慢慢地疯狂地盯着这些相同的代码行,试图在大海捞针中找到针。任何帮助或只是一个方向看,将不胜感激。

回答

0

打开web.config中添加或保证以下几点:

<webServices> 
    <protocols> 
    <add name="HttpGet" /> 
    <add name="HttpPost" /> 
    </protocols> 
</webServices> 
+0

这给了一个尝试,没有任何运气。我甚至添加了HttpSoap和Documentation,以确保它们不会发生这种情况。 – 2009-12-04 21:58:58