То, что я ищу, в 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), jQuery выполняет его (последний параметр «скрипта»).
Я пытаюсь добиться такого же эффекта в Додзё. Мое лучшее предположение:
form = dojo.byId("my_form")
form.onsubmit = function() {
dojo.xhrGet({
url: form.action,
form: form,
handleAs: "javascript"
})
}
handleAs: "javascript" должен заставить Dojo выполнить ответ как JS. Моя проблема в том, что я не могу понять, как установить заголовок, чтобы мой веб-сервер (блок respond_to do |format| в Rails) знал, что возвращать.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Не уверен насчет додзё, но я знаю, что phiggins (ведущий разработчик додзё) доступен на канале #dojo на freenode irc, если никто другой не может дать вам ответ.
Я считаю, что ответ таков:
form = dojo.byId("my_form")
form.onsubmit = function() {
dojo.xhrGet({
url: form.action,
form: form,
handleAs: "javascript",
headers: { "Accept": "text/javascript" }
})
}