Obtenha dados JSON com jQuery de um serviço .NET: confundido com a instalação do ajax
Acabei de passar seis horas tentando entender isso direito e não consegu
Existe um serviço da Web HelloWorld .NET 3.5 na minha máquina local. Configure conforme necessário.
O serviço retorna umList
de estruturas personalizadas.
Estou tentando consumi-lo com o jQuery 1.4.
Quando tento fazer o quea documentaçã diz que sempre recebo uma resposta XML do serviço, o que causaparseerror
no jQuery ou é passado como uma string burra para osuccess
função.Isso é, no entanto eu combinodataType
eaccepts
(que, de acordo com a documentação, controla como orecebid dados são manipulados), recebo um XML de volt
Mas, quando faço algo que não segue logicamente da documentação, recebo minha matriz de objetos com êxito.Isso é, quando eu ignorodataType
eaccepts
, E definircontentType: "application/json; charset=utf-8"
em vez disso, funciona be MascontentType
, de acordo com a documentação, controle os dados sendo enviado para o servidor, não recebido.
$.ajax(
{
type: "GET",
url: "http://localhost:52624/Service1.asmx/HelloWorld",
dataType: "json",
//accepts can be anything, or it can be missing, doesn't matter, only depends on dataType
success: function(data, textStatus, jqXHR) {...},
error: function(jqXHR, textStatus, errorThrown) {...}
}
)
Result: manipulador de erros chamado, textStatus =parseerror
.
$.ajax(
{
type: "GET",
url: "http://localhost:52624/Service1.asmx/HelloWorld",
dataType: "application/json",
//accepts can be anything, or it can be missing, doesn't matter, only depends on dataType
success: function(data, textStatus, jqXHR) {...},
error: function(jqXHR, textStatus, errorThrown) {...}
}
)
Result: o serviço da Web retorna XML, é passado para o manipulador de sucesso comostring
.
$.ajax(
{
type: "GET",
url: "http://localhost:52624/Service1.asmx/HelloWorld",
accepts: "json", // or "application/json"
success: function(data, textStatus, jqXHR) {...},
error: function(jqXHR, textStatus, errorThrown) {...}
}
)
Result: o serviço da Web retorna XML, é analisado e passado comoIXMLDOMDocument2
.
$.ajax(
{
type: "GET",
url: "http://localhost:52624/Service1.asmx/HelloWorld",
contentType: "application/json; charset=utf-8",
success: function(data, textStatus, jqXHR) {...},
error: function(jqXHR, textStatus, errorThrown) {...}
}
)
Result: O serviço da Web retorna JSON, que é parcialmente analisado pelo jQuery (números e seqüências de caracteres são analisados nas propriedades dos objetos, mas as datas permanecem na forma de"/Date(1303003305724)/"
).