Mi pregunta es: ¿podemos usar dojo.xhrPost para publicar algunos datos de Json? Más detalles:Dojo dojo.rawXhrPost y dojo.xhrPost
He estado experimentando con el código Dojo para POST JSON datos a un servicio RESTful. Parece ser que los comportamientos de dojo.xhrPost y dojo.rawXhrPost son diferentes, o para ser más precisos rawXhrPost() funciona y xhrPost() no. Esto no es compatible con mi lectura de la docs
El propósito original de dojo.rawXhrPost era un método que podrían utilizarse para enviar un cuerpo posterior prima al servidor. A partir de 1.3, esta función es común con dojo.xhrPost(). Por lo tanto, para el uso de dojo.rawXhrPost(), consulte dojo.xhrPost()
lo que implica que xhrPost() es suficiente. Mi código se ve así: tengo un servicio de biblioteca "de juguete" que administra Ediciones de libros. El código quiere publicar una nueva entrada,
var myEdition = {"Edition":{"isbn":"44"}};
var xhrArgs = {
url: "http://localhost:8081/LibraryWink/library/editions",
postData: dojo.toJson(myEdition),
handleAs: "json",
headers: { "Content-Type": "application/json"},
load: function(data) {
dojo.byId("mainMessageText").innerHTML = "Message posted.";
},
error: function(error) {
dojo.byId("mainMessageText").innerHTML = "Error :" + error;
}
};
var deferred = dojo.rawXhrPost(xhrArgs);
Los encabezados: { "Content-Type": "application/json"} parte de lo necesario para que mi servicio JAX-RC entiende que el contenido es JSON .
Lo que encuentro es que el código anterior funciona perfectamente. Sin embargo, si en cambio digo:
var deferred = dojo.xhrPost(xhrArgs);
No se transmiten datos en la POST. Tengo un monitor TCP/IP en su lugar y puedo ver que no hay nada transmitido.
Entonces, ¿esto es un error, o estoy manejando xhrPost() incorrectamente? ¿O debería usar rawXhrPost()? Si es este último, ¿en qué circunstancias usamos los dos sabores de XhrPost?
Gracias, experimentarán e informarán. – djna
Creo que el conjunto de caracteres que pretendía usar es utf-8 no uft-8. – Traker
@Tracker: tienes razón. Ahora está arreglado. – lambacck