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はそれ(最後の「script」パラメーター)を実行します。

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 についてはよくわかりませんが、freenode irc の #dojo チャンネルで phiggins (dojo dev のリーダー) が利用できることは知っています。

于 2008-11-18T22:20:18.417 に答える