【问题标题】:Webservice not called in asp.net未在 asp.net 中调用 Web 服务
【发布时间】:2013-01-25 08:35:36
【问题描述】:

我在 javascript 中有以下 ajax 调用

$.ajax({
    type: "Post",
    url: '../WebService/LoginService.asmx/LoginCheck',
    data: jsondata,
    dataType: "json",
    contentType: "application/json; charset=utf-8",
    success: function (resp) {
        if (resp.d == true) {
            window.location.replace("../Admin/DashBoard.aspx");
            return;
        }
        jQuery("#lblex").css("display", "block");
    },
    error: function (response) {
        alert(response.responseText);
    }
});

当我测试时,这在本地运行良好,但是当我将它托管在我的生产服务器上时,它说找不到服务。 但我可以浏览到路径

../WebService/LoginService.asmx

如果我将 url 更改为

 ../WebService/LoginService.asmx?op = LoginCheck

它也可以在那里工作。

谁能告诉我我需要在本地或生产服务器上进行哪些配置更改才能让它们以相同的方式工作

【问题讨论】:

  • 你在使用表单认证吗?如果是这样,当您在登录前或未登录时调用此函数时。

标签: asp.net ajax web-services


【解决方案1】:

如果此脚本位于 WebForm 中,我建议您使用 ResolveUrl 方法来确保无论您的应用程序托管在何处都能生成正确的 url:

url: '<%= ResolveUrl("~/WebService/LoginService.asmx/LoginCheck")',

如果脚本不在 WebForm 中,而是在单独的 javascript 文件中,您不能使用服务器端函数,您可以在 WebForm 中定义全局 javascript 变量:

<script type="text/javascript">
    var serviceUrl = '<%= ResolveUrl("~/WebService/LoginService.asmx/LoginCheck")';
</script>

您以后可以在单独的 js 文件中使用:

url: serviceUrl,

【讨论】:

    猜你喜欢
    • 2021-09-11
    • 1970-01-01
    • 2011-07-05
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多