我正在尝试从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();
}
以下是网络服务签名:
[WebMethod]
public SearchComboBoxItemData[] GetSearch(object context)
{
当我使用表单身份验证并允许匿名访问Web服务时,一切正常。
但是,当我对应用程序使用Windows身份验证,但只允许匿名访问Web服务时,从javascript调用Web服务会引发以下错误:
无效的Web服务调用,缺少参数值:'context'。
我注意到的另一件事是它在Firefox中的两种方式都很好。我在IE7上看到错误。
对可能解决方案的任何想法?
答案 0 :(得分:0)
我假设你使用的是ASP.NET Ajax。
您可以尝试添加:
preCondition="integratedMode"
属性为web.config文件的Modules部分。
希望这有帮助
答案 1 :(得分:0)
听起来你正在使用集成身份验证,IE已经登录,但Firefox却没有。您可能想要检查IE登录的用户名。
此外,还有以下几点:
var temp = "";
for(prop in context){
temp +=prop+"= "+context[prop]+"\n";
}
alert(temp);
查看上下文包含的内容。