我尝试将一段旧代码移动到DNN模块。 Code通过JQuery调用Webservice(asmx)并显示Result。 我把ASMX文件放在这里:DesktopModules.MyModule.Service和Code Behind到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”
友好的网址关闭,没有重写器......
我找不到办法 - 欢迎任何帮助: - )
彼得
答案 0 :(得分:0)
你需要在siteurl.config中有一个新条目,这里适合你。
<RewriterRule>
<LookFor>.*myService.asmx(.*)
<SendTo>~/DesktopModules/myModule/Service/myService.asmx$1
</RewriterRule>
这将解决您的问题。
另一个好处是,如果你这样做,localhost / myService.asmx它仍然会因为那个规则而起作用