DNN: вызвать веб-сервис из JQuery - PullRequest
0 голосов
/ 08 ноября 2011

Я пытаюсь переместить часть моего старого кода в модуль DNN.Код вызывает веб-сервис (asmx) через JQuery и отображает результат.Я разместил здесь файл ASMX: DesktopModules.MyModule.Service и код в папке App_Code \ MyModule.

Я могу вызвать службу напрямую через http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx - пока проблем нет :-)

Но вызов службы из модуля с помощью этого сценария

GetStats = function () {

$.ajax(
 {
     type: "POST",
     url: "http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx",
     data: '{}',
     contentType: "application/json; charset=utf-8",
     dataType: "json",
     failure: function (msg) {
          Failure while call : " + msg);
     },
     error: function (xhr, err) {
          Error while call : " + err);
     },
     success: function (response) {}});
  };

В конце кода ошибки 400, кажется, что URL переписан?!

Я ввожу "http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx" и код переходит на этот URL-адрес "/dnn/Default.aspx?tabid=82/myService.asmx"

Дружественные URL отключены, и нет перезаписывающего устройства ...

Я просто не могу найти способ - любая помощь приветствуется: -)

Питер

1 Ответ

0 голосов
/ 08 ноября 2011

вам нужна новая запись в siteurl.config, вот она для вас.

<RewriterRule>
    <LookFor>.*myService.asmx(.*)
    <SendTo>~/DesktopModules/myModule/Service/myService.asmx$1
</RewriterRule>

Это решит вашу проблему.

Еще одна хорошая вещь об этом, если вы делаете, localhost / myService.asmx все равно будет работать из-за этого правила

...