非常によく似たコードが 2 つあります。1 つは機能し、もう 1 つは機能しません。これは機能します。
$(document).ready(function() {
return $("form#myform").live("submit", function() {
var valuesToSubmit;
valuesToSubmit = $(this).serialize();
$.ajax({
url: $(this).attr("action"),
data: valuesToSubmit,
dataType: "JSON",
success: function(json) {
return $("#form-container").html(json["text"]);
},
error: function(json, xy, mycode) {
var msg, response;
response = $.parseJSON(json.responseText);
msg = response.text;
return alert(msg);
}
});
return false;
});
});
これはしません:
$(document).ready(function() {
return $("form#myform").submit(function() {
//same stuff as before
});
});
Rails コントローラーは json のみで応答するようになり、html 応答はありません。私が見た2つの違いは、どちらもコントローラーに正常に送信されることですが、最初のケースでは、要求は本来あるべきjsonであり、応答はjsonであるため、正常に動作します。しかし、2 番目のケースでは、「dataType: "JSON"」を指定しても、リクエストのタイプは html であり、応答は html であり、フォーム アクション ページにリダイレクトされ、戻るボタンを押して同じページに移動すると、ページ、ログアウトしました。だから私はバックページに移動すると私もログアウトする理由を知りたい.
$(something).submit(function(){}); の違いは何ですか? および $(something).live('submit', function(){})。どちらもアクションに投稿していますが、一方は html リクエストを作成していますが、もう一方は json リクエストを作成しています。一方は実際にアプリからログアウトしますが、もう一方はログアウトしませんか?