DNN:从JQuery调用Webseervice

时间:2011-11-08 13:35:33

标签: jquery asmx dotnetnuke

我尝试将一段旧代码移动到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”

友好的网址关闭,没有重写器......

我找不到办法 - 欢迎任何帮助: - )

彼得

1 个答案:

答案 0 :(得分:0)

你需要在siteurl.config中有一个新条目,这里适合你。

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

这将解决您的问题。

另一个好处是,如果你这样做,localhost / myService.asmx它仍然会因为那个规则而起作用