【问题标题】:DNN: Call a Webseervice from JQueryDNN:从 JQuery 调用 Web 服务
【发布时间】:2011-12-24 11:19:54
【问题描述】:

我尝试将一段旧代码移至 DNN 模块。代码通过 JQuery 调用 Web 服务 (asmx) 并显示结果。 我将 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结尾,看来是重写了网址?!

我输入“http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx” 并且代码转到此 URL“/dnn/Default.aspx?tabid=82/myService.asmx”

友好的 URL 已关闭,并且没有适当的重写器...

我只是找不到方法 - 欢迎任何帮助 :-)

彼得

【问题讨论】:

    标签: jquery asmx dotnetnuke


    【解决方案1】:

    您需要在 siteurl.config 中添加一个新条目,这是给您的。

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

    这将解决您的问题。

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

    【讨论】:

      猜你喜欢
      • 2012-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-31
      • 2013-04-08
      • 1970-01-01
      相关资源
      最近更新 更多