jquery ajax错误无法在调试模式之外找到url

时间:2009-12-04 21:18:52

标签: javascript jquery .net ajax web-services

我在两周前继承了一些代码,它使用jquery.ajax方法连接到.NET Web服务。这段代码给我带来了麻烦...

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服务器时,在同一页面上,没有数据显示。当我在firebug上面的代码的错误部分中断时,这是我在下面链接的图像中获得的信息。

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

1 个答案:

答案 0 :(得分:0)

打开web.config并添加或确保以下内容:

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