Мой вопрос: можем ли мы использовать dojo.xhrPost для публикации некоторых данных Json? Более подробно:
Я экспериментировал с кодом Dojo для отправки данных JSON в службу RESTful. Похоже, что поведение dojo.xhrPost и dojo.rawXhrPost отличается или, если быть более точным, rawXhrPost () работает, а xhrPost () - нет. Это не согласуется с моим прочтением документов
Первоначальная цель
dojo.rawXhrPost был метод, который
может быть использован для отправки необработанного тела сообщения
на сервер. По состоянию на 1.3 это
функция является общей с
dojo.xhrPost (). Итак, для использования
dojo.rawXhrPost (), см. dojo.xhrPost ()
Что подразумевает, что xhrPost () достаточно. Мой код выглядит следующим образом - у меня есть «игрушечный» библиотечный сервис, который управляет изданиями книг. Код хочет отправить новую запись,
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);
Заголовки : {"Content-Type": "application / json"} необходимы для того, чтобы моя служба JAX-RC понимала, что содержимое - это JSON.
Я обнаружил, что приведенный выше код работает отлично. Однако если вместо этого я скажу:
var deferred = dojo.xhrPost(xhrArgs);
Данные не передаются в POST. У меня есть монитор TCP / IP, и я вижу, что ничего не передается.
Итак, это ошибка или я неправильно управляю xhrPost ()? Или я должен использовать rawXhrPost ()? Если последнее, то при каких обстоятельствах мы используем два варианта XhrPost?