#jquery #asmx #dotnetnuke
#jquery #asmx #dotnetnuke
Вопрос:
Я пытаюсь переместить часть моего старого кода в модуль DNN. Код вызывает веб-сервис (asmx) через jQuery и отображает результат. Я разместил файл ASMX здесь: DesktopModules.Мой модуль.Служба и код, стоящий за ней, помещаются в папку 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:
вам нужна новая запись в siteurl.config, вот она для вас.
<RewriterRule>
<LookFor>.*myService.asmx(.*)
<SendTo>~/DesktopModules/myModule/Service/myService.asmx$1
</RewriterRule>
Это решит вашу проблему.
Еще одна хорошая вещь в этом заключается в том, что если вы сделаете localhost/ MyService.asmx, он все равно будет работать из-за этого правила