2009-02-25 16 views
5

estoy tratando de llamar a un método de servicio web desde javascript:¿Usar ajax para llamar a un servicio web cuando la Autenticación de Windows está activada?

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

Aquí está la firma de servicios web:

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

Cuando uso la autenticación de formularios y permitir el acceso anónimo para el servicio web, todo funciona multa.

Sin embargo, cuando se utiliza la autenticación de Windows para la aplicación, pero sólo permiten el acceso anónimo para el servicio web, llamar al servicio web desde JavaScript lanza el siguiente error:

no válida llamada de servicio web, el valor faltante para el parámetro: ' contexto'.

Otra cosa que noté es que funciona bien en ambos sentidos en Firefox. Estoy viendo el error en IE7.

¿Alguna idea de una posible solución?

+0

¿Funciona desde IE cuando habilita el acceso anónimo y autenticado al servicio? –

+0

¿Encontró una solución a este problema? Tengo el mismo problema. Gracias. – Picflight

Respuesta

0

Supongo que está utilizando ASP.NET Ajax.

Usted podría intentar agregar:

preCondition="integratedMode" 

atributo a la sección Módulos de su archivo web.config.

espero que esto ayude

0

Parece que usted está utilizando la autenticación integrada, y el IE ha iniciado la sesión, pero Firefox no tiene. Es posible que desee comprobar el nombre de usuario con el que IE está conectado.

También, algo a lo largo de las líneas de:

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

para ver lo que contiene el contexto.

Cuestiones relacionadas