JQuery AJAX ошибка не может найти URL за пределами режима отладки - PullRequest
0 голосов
/ 05 декабря 2009

Две недели назад я унаследовал некоторый код, который использует метод jquery.ajax для подключения к веб-сервису .NET. Вот кусок кода, дайте мне неприятности ...

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 у меня не возникает проблем с подключением к базе данных через веб-сервис и просмотром всех моих данных, как для просмотра, так и для обновления. Когда я иду через обычный веб-сервер для того же сайта, на той же странице, никакие данные не отображаются. Когда я делаю перерыв в части кода ошибки выше в firebug, это информация, которую я получаю на изображении, связанном ниже.

Я получаю сообщение об ошибке 404, но когда я смотрю на сервер, все файлы находятся в нужном месте ... в сочетании с тем, что он работает в режиме отладки, я думаю, что медленно схожу с ума, глядя на эти самые строки кода, пытаясь найти иголку в стоге сена. Будем очень благодарны за любую помощь или просто направление.

1 Ответ

0 голосов
/ 05 декабря 2009

Откройте web.config и добавьте или убедитесь, что:

<webServices>
  <protocols>
    <add name="HttpGet" />
    <add name="HttpPost" />
  </protocols>
</webServices>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...