jQuery $ .ajax&和jQuery之间的根本区别是什么? dojo.xhrPost?

时间:2015-06-06 09:08:56

标签: jquery ajax dojo difference

我尝试在两个按钮上实现这两个方法,如下所示。 按钮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”的附加实体。 那是什么? 这会影响服务器端数据的读取方式。

1 个答案:

答案 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。