DNN:从 JQuery 调用 Web 服务

发布于 2024-12-14 16:01:27 字数 1070 浏览 2 评论 0原文

我尝试将一段旧代码移至 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,似乎 URL 被重写了?!

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

友好 URL 已关闭并且没有重写器...

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

彼得

I try to move a piece of my old code to a DNN Module. The Code calls a Webservice (asmx) via JQuery and display's the Result.
I placed the ASMX File here : DesktopModules.MyModule.Service and the Code Behind into the App_Code\MyModule Folder.

I can call the Service directly via http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx - no Problem so far :-)

But calling the Service from the Module with this Script

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) {}});
  };

End with Error Code 400, it seems that the URL is rewritten ?!

I enter "http://localhost/DNN/DesktopModules/myModule/Service/myService.asmx"
and the Code goes to this URL "/dnn/Default.aspx?tabid=82/myService.asmx"

Friendly Urls are off and there is no rewriter in place...

I just can't find a way - any help is welcome :-)

Peter

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

↘紸啶 2024-12-21 16:01:28

您需要在 siteurl.config 中添加一个新条目,这里就是为您准备的。

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

这将解决你的问题。

另一个好处是,如果你这样做, localhost/myService.asmx 由于该规则,它仍然可以工作

you need a new entry in siteurl.config, here it is for you.

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

That will fix your problem.

Another good thing about this is, if you do, localhost/myService.asmx it will still work because of that rule

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文