代码之家  ›  专栏  ›  技术社区  ›  Yisroel M. Olewski

通过jquery调用asmx得到错误的url

  •  0
  • Yisroel M. Olewski  · 技术社区  · 14 年前

    几天来,我一直试图通过jQuery让ASMX webservice工作。

    <script type="text/javascript">
        $(document).ready(function () {
            $("#btnTest").click(function () {
                $.ajax({
                    type: "POST",
                    url: "/WebService.asmx/HelloWorld",
                    cache: false,
                    contentType: "application/json; charset=utf-8",
                    data: "{}",
                    dataType: "json",
                    success: function (data) {
                        alert(data);
                    },
                    error: function (XMLHttpRequest, textStatus, errorThrown) { alert(textStatus + ' ' + errorThrown + ' ' + XMLHttpRequest); }
                });
            });
        });
    </script>
    

    问题似乎是浏览器检查此url:

    http://localhost:52657/WebService.asmx/CheckSmtp
    

    http://localhost:52657/myappname/WebService.asmx/CheckSmtp
    

    所以我试着不在 $.ajax url,但更糟的是,如果我在一个页面admin/products/edit上,那么ajax将转到 admin/products/edit/webservice.asmx 这绝对是错误的。

    那么如何告诉jquery查找根文件夹呢?

    1 回复  |  直到 11 年前
        1
  •  1
  •   Mattias Jakobsson    14 年前

    这将解析正确的url服务器端:

    <%=ResolveUrl("~/WebService.asmx/HelloWorld")%>