5
votes

I am trying to call a web service method from javascript:

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();
    }

Here's the web service signature:

[WebMethod]
    public SearchComboBoxItemData[] GetSearch(object context)
    {

When I use forms authentication and allow anonymous access to the web service, everything works fine.

However, when I use windows authentication for the application, but only allow anonymous access to the webservice, calling the web service from javascript throws the following error:

Invalid web service call, missing value for parameter: 'context'.

Another thing I noticed is that it works fine both ways in Firefox. I am seeing the error on IE7.

Any thoughts on a possible solution?

2
Does it work from IE when you enable both anonymous and authenticated access to the service?Peter Lillevold
Did you find a solution to this problem, I am having the same issue. Thanks.Picflight

2 Answers

0
votes

I assume you are using ASP.NET Ajax.

You could try adding:

preCondition="integratedMode"

attribute to the Modules section of your web.config file.

Hope this helps

0
votes

It sounds like you're using integrated authentication, and IE has logged in, but Firefox hasn't. You may want to check the username that IE is logged in under.

Also, something along the lines of:

var temp = "";
for(prop in context){
    temp +=prop+"= "+context[prop]+"\n";
}
alert(temp);

To see just what context contains.