Ajax呼叫返回错误401未经授权

问题描述 投票:0回答:1

我正在使用HTML和JavaScript(jQuery)开发Web应用程序,用于数据库通信,而我在C#中使用.asmx Web服务。

在本地计算机和本地IIS上部署我的应用程序效果很好。问题是,现在我需要在公司Web服务器上部署我的应用程序,现在是每个ajax调用都不起作用并且返回错误401的时候。奇怪的是,如果我输入ajax调用网址(显示了asmx Web服务),然后返回我的网站并重新加载页面,那么所有的ajax调用都可以使用。例如:

$.ajax({
   url: "http://192.168.46.87/MyApp/ws_WebService.asmx/Login"

此ajax调用返回错误401,之后,如果我输入URL http://192.168.46.87/MyApp/ws_WebService.asmx,则我的Web服务已加载,并且如果重新加载我的网页选项卡,则ajax调用可以正常工作。

这是我的ajax电话:

function CallWM(webMethod, JSONToSend, callBackFunction, extraData) {
    try {
        $.ajax({
            type: 'POST',
            url: "http://192.168.46.87/MyApp/" + webMethod,
            contentType: 'application/json',
            dataType: 'json',
            data: JSON.stringify(JSONToSend),
            success: function (data, strErr, xhr) {
                callBackFunction(data.d, extraData);
            },
            error: function (xhr, textStatus, errorThrown) {
                bootbox.alert("Error calling the server!\n" + xhr.statusText);                                
                console.log(xhr.statusText);
                console.log(xhr);
                $.unblockUI();
            }
        });
    }
    catch (err) {
       bootbox.alert("Error calling the server!\n" + err.message);
       $.unblockUI();
    }
}

我已经尝试过更改服务器IIS上的身份验证类型,通过ajax调用发送我的凭据,但收到相同的错误消息,我还可以尝试其他什么操作或者是什么问题?

PD。在我的本地IIS上可以完美运行,现在的问题是我将应用程序移至Web服务器。

c# ajax web-services iis-7.5 windows-server-2012
1个回答
0
投票

最后我可以解决此问题,这是解决方法就我而言

在我的应用程序路径上,我有一个Web.config,其中没有与身份验证相关的任何内容,但是我发现在IIS inetpub应用程序文件夹根目录中还有另一个Web.config,在该文件上,我看到了有关身份验证的内容,删除了解决了我的问题。

© www.soinside.com 2019 - 2024. All rights reserved.