178 messaggi dal 26 marzo 2001
Ciao,

ho creato un domain service con WCF RIA Services in cui espongo un metodo che ritorna un elenco di prodotti (tramite Entity Framework) dal database di esempio Adventure Works LT.
Volevo fare un prova a chiamare il servizio da un'applicazione Silverlight, da una Windows Phone 7 e da una Ajax che utilizza jQuery.

Per quanto riguarda la prima prova non ho avuto problemi e neanche per la seconda (ho però aggiunto un endpoint soap utilizzando WCF RIA Services Toolkit).

Per quanto riguada invece la prova da un'applicazione Ajax jQuery ho avuto qualche difficoltà: ho aggiunto un endpoint JSON sempre utilizzando WCF RIA Services Toolkit e poi ho scritto un metodo javascript che lo invoca:

$.ajax
(
{
type: "GET", url: "http://localhost:49951/Services/WorkingWithRIAServices-Web-ProductService.svc/Json/GetFilteredAndSortedProduct?filter=Mountain&sorting=1",
contentType: "application/json",
dataType: "json",
success:
function (msg)
{
$.each(msg.GetFilteredAndSortedProductResult.RootResults,
function ()
{
$('#productList > tbody').append(
'<tr><td>'
+ this.ProductID
+ '</td><td>'
+ this.Name
+ '</td><td>'
+ this.ListPrice
+ '</td></tr>'
);
});
}
}
);


Su Internet Explorer funziona tutto ma sia su FireFox che su Chrome la variabile msg (risultato ritornato dal servizio) è null.
Se però in FireFox digito l'url del servizio, mi chiede di salvare il file e una volta salvato, il suo contenuto è il risultato serializzato in JSON.

Sia su FireFox che su Chrome il servizio viene invocato, sembra che sia un problema di deserializzazione JSON lato client.

Quale potrebbe essere il problema?
A prima vista sembrerebbe tutto giusto, dato che indichi il datatype su json, magari è un problema di autoformat della risposta.
Usa tool come fiddler o firebug per vedere fisicamente la richiesta http così vedi cosa risponde o se c'è qualcosa di strano nella richiesta rispetto ad ie

Ciao

Il mio blog
Homepage
178 messaggi dal 26 marzo 2001
Ciao,

in FireBug vedo che la chiamata al servizio va a buon fine infatti ottengo 200 OK, ma la risposta apparentemente è vuota infatti la tab Response è vuota. Se però digito l'indirizzo del servizio direttamente nel browser FireFox, mi fa salvare un file il cui contenuto è la risposta JSON serializzata.

Ho notato poi che nella tab Net di FireBug, mi dice 96 KB from cache dopo la chiamata al servizio e nella console di FireBug ho poi un errore di javascript:

msg is null
$.each(msg.GetFilteredAndSortedProductResult.RootResults,

dove msg è la variabile che contiene il risultato della risposta del servizio.

Io avevo fatto una semplice pagina htm senza inserirla dentro un'applicazione ASP.NET e aprivo il file con il browser.
Il fatto che mi dicesse 96 KB from cache mi ha insospettito e a quel punto ho deciso di creare un'applicazione ASP.NET in cui ho inserito la mia pagina e da quel momento la pagina ha iniziato a funzionare su tutti i browser.
Modificato da OasisLiveForever il 19 agosto 2010 06.01 -
Io in genere per evitare questo genere di problemi disattivo la cache tramite la web developer toolbar di IE o tramite quelle di firefox, dato che non sempre rinfrescano script ecc

Ciao

Il mio blog
Homepage

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.