我正在寻找的东西在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|
块)知道要返回什么。
答案 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频道上找到,也就是说,如果没有其他人能给你答案的话。