我的问题是:我们可以使用dojo.xhrPost来发布一些Json数据吗?更多详细信息:Dojo dojo.rawXhrPost和dojo.xhrPost
我一直在尝试使用Dojo代码将JSON数据发布到REST风格的服务。它似乎是dojo.xhrPost和dojo.rawXhrPost的行为是不同的,或更准确rawXhrPost()作品和xhrPost()不行。这不符合我的docs
读数一致 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);
的头:{“内容类型”:“应用/ JSON”}在必要一部分,这样我的JAX-RC服务的理解是,内容是JSON 。
我发现上面的代码完美地工作。但是,如果我说:
var deferred = dojo.xhrPost(xhrArgs);
在POST中没有数据传输。我有一个TCP/IP监视器,可以看到没有任何传输。
那么,这是一个错误,还是我不正确地驾驶xhrPost()?或者我应该使用rawXhrPost()?如果是后者,我们在什么情况下使用XhrPost的两种口味?
谢谢,我们将进行实验并报告回来。 – djna
我认为你打算使用的字符集是utf-8而不是uft-8。 – Traker
@Tracker:你说得对。它现在已经修复。 – lambacck