Сбой вызова $ .ajax () для MSFT MVC в ISP, работает локально - PullRequest
1 голос
/ 14 июля 2009

Следующий вызов JQuery $ .ajax () в файле .js работает локально, но не при развертывании на провайдере.

$.ajax({
  type: 'GET',
  url: 'Services/GetActivePatient',
  async: false,
  dataType: 'json',
  cache: false,
  success: function(pt) {
    Alert(pt);
  },
  error: function(xhr, ajaxOptions, thrownError) {
    alert('Error loading active patient' + 'XHR:' + xhr + ' OPTIONS:' + ajaxOptions + ' ERROR:' + thrownError);
  }
 });

Мои маршруты:

  routes.MapRoute(
      "aspx",
      "{controller}.aspx/{action}/{id}",
      new { action = "Index", id = "" }
    );

  routes.MapRoute(
      "Default",
      "{controller}/{action}/{id}",
      new { controller = "Home", action = "Index", id = "" }
    );

  routes.MapRoute(
    "Root",
    "",
    new { controller = "Home", action = "Index", id = "" }
  );

Разница с поставщиком услуг Интернета заключается в том, что приложение / сайт находится в подпапке (/ ipd), которая включена в качестве приложения в IIS6.

В этом вызове я получаю сообщение об ошибке «Страница 404 не найдена» при просмотре ответа в Firebug.

Любые мысли приветствуются.

1 Ответ

1 голос
/ 14 июля 2009

Попробуйте изменить:

url: 'Services/GetActivePatient',

до

url: '<%= Url.Action("GetActivePatient", "Services") %>',

// returns /ipd/Services/GetActivePatient on the ISP
// and /Services/GetActivePatient on local server

ОБНОВЛЕНИЕ:

Если у вас есть отдельный файл js, используйте что-то вроде этого в вашем View:

<script type="text/javascript">
    var Services_GetActivePatient_Url = '<%= Url.Action("GetActivePatient", "Services") %>';
</script>

и затем в js:

url: Services_GetActivePatient_Url,

Также посмотрите на Стивен Уолтер - ASP.NET MVC Совет № 45 - Использование данных представления клиента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...