"mtugnoli" <mtugnoli> ha scritto nel messaggio news:400847@...
Ho' recentemente aggiornato il mio Visual Studio con l'ultimo 2013 PRO, Ho provato a caricare un mio progetto in MVC 4 con alcuni Web Services, ma questi non funzionano piu'.
La chiamata la faccio cosi :
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: '/UserInfo.asmx/GetUserInfo',
data: "{ 'names' : " + "'" + names + "'" + "}",
success: function (data) {
// alert(data.d.Email);
}
});
PS: tutto il progetto funziona correttamente tranne queste chiamate. Come mai ?
Prova a fare così:
var param = {};
param.names = names;
$.ajax({
type: "POST",
contentType: "application/json; charset=utf-8",
dataType: "json",
url: '/UserInfo.asmx/GetUserInfo',
data: JSON.stringify(param),
success: function (data) {
// alert(data.d.Email);
},
error: function (jqXHR, textStatus, errorThrown) {
//alert(errorThrown);
}
});
Metti un breackpoint in corrispondenza di alert(errorThrown); ed ispeziona i parametri della funzione di errore.
Qui dovresti trovare il motivo per cui non funziona la chiamata al ws.
Ricorda che nel tuo webservice vi devono essere queste righe:
' Per consentire la chiamata di questo servizio Web dallo script utilizzando ASP.NET AJAX, rimuovere il commento dalla riga seguente.
<System.Web.Script.Services.ScriptService()>
<System.Web.Services.WebService(Namespace:="
http://tuodominio.org/")> <System.Web.Services.WebServiceBinding(ConformsTo:=WsiProfiles.BasicProfile1_1)> <ToolboxItem(False)>
e che ogni web service va decorato con:
<WebMethod>
Serializza i dati di ritorno con Serialization.JavaScriptSerializer
Banalmente a me capita quando il nome di uno dei parametri del ws è scritto diverso (attenzione a maiuscole e minuscole) o manca.
Inoltre utilizzo un oggetto (param) per inviare al ws i parametri. Trovo che sia più leggibile e semplice da popolare soprattutto quando devi inviare tanti parametri.
Buon lavoro
Pino Saffioti