我尝试在两个按钮上实现这两个方法,如下所示。 按钮1
$.ajax({
type: "POST",
url: "xhrServer.xsp",
data: "some=name=random=data",
contentType: "application/json; charset=utf-8",
dataType: "html"
}).done(function() {
alert("success");
})
.fail(function() {
alert("Something went wrong. Please try again or contact system administrator.");
})
按钮2
var xhrArgs = {
url: "xhrServer.xsp",
content: "some=name=random=data",
handleAs: "text",
load: function(data) {
alert("Data posted.");
},
error: function(error) {
alert("Error occurred while posting data.");
}
}
dojo.xhrPost(xhrArgs);
在firebug控制台上,对于dojo.xhrPost请求,会显示一个名为“Parameters”的附加实体。 那是什么? 这会影响服务器端数据的读取方式。
答案 0 :(得分:0)
var xhrArgs = {
url: "xhrServer.xsp",
headers: {
"Content-Type": "application/json; charset=utf-8"
},
postData: "some=name=random=data",
handleAs: "text",
load: function(data) {
alert("Data posted.");
},
error: function(error) {
alert("Error occurred while posting data.");
}
}
dojo.xhrPost(xhrArgs);
默认情况下,在dojo中,内容类型将为URL编码&作为参数发送。如果我们想在dojo中指定内容类型,我们需要在xhrArgs对象中设置headers属性(即headers:{“Content-Type”:“application / json”})。 这将原始形式的完整数据发送到服务器,就像jQuery $ .ajax一样。 感谢您帮助@frank。