Web服务没有在asp.net中调用

时间:2013-01-25 08:35:37

标签: asp.net ajax web-services

我在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

如果我将网址更改为

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

它也适用于那里。

任何人都可以让我知道我需要在本地或生产服务器上进行哪些配置更改才能让它们以相同的方式工作

1 个答案:

答案 0 :(得分: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,