1

我正在寻找的东西在 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 会执行它(最后一个“脚本”参数)。

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

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

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

4

2 回答 2

3

我相信答案是:

form = dojo.byId("my_form")
  form.onsubmit = function() {
  dojo.xhrGet({
    url: form.action,
    form: form,
    handleAs: "javascript",
    headers: { "Accept": "text/javascript" }
  })
}
于 2008-11-18T23:00:23.577 回答
0

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

于 2008-11-18T22:20:18.417 回答