asp.net - 打开 Windows 身份验证时使用 ajax 调用 Web 服务?

标签 asp.net ajax web-services

我正在尝试从 javascript 调用 Web 服务方法:

function Search() {

        var context = new Object;
        context.Filter = "Test";

        SearchService.GetSearch(context, onSuccess, onFailed);
    }

    function onSuccess(result) {
        // userContext contains symbol passed into method
        var res = document.getElementById("resultsDiv");
        res.innerHTML = result;
    }

    function onFailed(result) {
        var res = document.getElementById("resultsDiv");
        res.innerHTML = result.get_message();
    }

这是 Web 服务签名:
[WebMethod]
    public SearchComboBoxItemData[] GetSearch(object context)
    {

当我使用表单例份验证并允许匿名访问 Web 服务时,一切正常。

但是,当我对应用程序使用 windows 身份验证,但只允许匿名访问 web 服务时,从 javascript 调用 web 服务会引发以下错误:

无效的 Web 服务调用,缺少参数值:“上下文”。

我注意到的另一件事是它在 Firefox 中都可以正常工作。我在 IE7 上看到错误。

对可能的解决方案有任何想法吗?

最佳答案

我假设您使用的是 ASP.NET Ajax。

您可以尝试添加:

preCondition="integratedMode"

属性到 web.config 文件的 Modules 部分。

希望这可以帮助

关于asp.net - 打开 Windows 身份验证时使用 ajax 调用 Web 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/587309/

相关文章:

c# - .NET Core 2.0 中的 HttpWebRequest 抛出 302 发现异常

php - 如何在提交时从侧栏中的mysql获取搜索结果而不刷新页面

java - 如何链接 Wicket 下拉列表事件?

java - JAXWS运行时异常

html - 在 ASP.NET MVC 中处理可变数量的动态输入字段?

c# - Jquery pageLoad() 在多个 js 文件中不起作用

c# - 如何动态检查数组中的索引是否存在?

javascript - EasyUI 树形网格最初折叠全部

ajax - 当用户超过ajax时该怎么办

java - NoClassDefFoundError : Could not initialize class org. apache.axis2.description.AxisService