我试图从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();
}
Run Code Online (Sandbox Code Playgroud)
这是Web服务签名:
[WebMethod]
public SearchComboBoxItemData[] GetSearch(object context)
{
Run Code Online (Sandbox Code Playgroud)
当我使用表单身份验证并允许匿名访问Web服务时,一切正常.
但是,当我对应用程序使用Windows身份验证,但只允许匿名访问Web服务时,从javascript调用Web服务会引发以下错误:
无效的Web服务调用,缺少参数值:'context'.
我注意到的另一件事是它在Firefox中的两种方式都很好.我在IE7上看到错误.
对可能解决方案的任何想法?
我假设您正在使用 ASP.NET Ajax。
您可以尝试添加:
preCondition="integratedMode"
Run Code Online (Sandbox Code Playgroud)
属性添加到 web.config 文件的 Modules 部分。
希望这可以帮助