我正在尝试从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身份验证,但只允许匿名访问webservice时,从javascript调用web服务会抛出以下错误:
无效的web服务调用,缺少参数'context‘的值。
我注意到的另一件事是,它在Firefox中的两种情况下都工作得很好。我在IE7上看到错误。
对可能的解决方案有什么想法吗?
发布于 2009-03-19 21:53:10
我假设您使用的是ASP.NET Ajax。
您可以尝试添加以下内容:
preCondition="integratedMode"
属性添加到web.config文件的“模块”部分。
希望这能有所帮助
发布于 2009-03-22 10:35:29
听起来您正在使用集成身份验证,并且IE已登录,但Firefox尚未登录。您可能需要检查IE登录所使用的用户名。
此外,还有一些类似的东西:
var temp = "";
for(prop in context){
temp +=prop+"= "+context[prop]+"\n";
}
alert(temp);
查看上下文中包含的内容。
https://stackoverflow.com/questions/587309
复制相似问题