如何在Dojo中执行JS XHR响应?

时间:2008-11-18 22:04:20

标签: javascript jquery dojo

我正在寻找的东西在jQuery中看起来像这样:

jQuery.ajaxSetup({
  'beforeSend': function(xhr) {
    xhr.setRequestHeader("Accept", "text/javascript");
  }
});
...
$("#my_form").submit({
  $.post($(this).attr("action", $(this).serialize(), null, "script");
  return false;
});

然后,当我的服务器返回一些Javascript(Accept-header位)时,jQuery执行它(最后一个“script”参数)。

我试图在Dojo中获得相同的效果。我最好的猜测是:

form = dojo.byId("my_form")
form.onsubmit = function() {
  dojo.xhrGet({
    url: form.action,
    form: form,
    handleAs: "javascript"
  })
}

handleAs: "javascript"应该导致Dojo以JS的形式执行响应。我的问题是我无法弄清楚如何设置标头,以便我的Web服务器(Rails中的respond_to do |format|块)知道要返回什么。

2 个答案:

答案 0 :(得分:3)

我相信答案是:

form = dojo.byId("my_form")
  form.onsubmit = function() {
  dojo.xhrGet({
    url: form.action,
    form: form,
    handleAs: "javascript",
    headers: { "Accept": "text/javascript" }
  })
}

答案 1 :(得分:0)

不确定dojo我自己,但我知道phiggins(领先的dojo dev)可以在freenode irc上的#dojo频道上找到,也就是说,如果没有其他人能给你答案的话。