controller
の中のActionMethod
を呼び出そうとしています。データが正常に返された場合は、新しいページのdiv
にデータを表示してください!明らかにデータが返されると、div
はまだ読み込まれていないので、データを表示することができません。コントローラへのAjax呼び出し、別のページへのリダイレクトAjaxからの表示データの返信
これ以外の方法はありますか?
test1: function() {
var type = $("#type1").val();
$.ajax({
url: '/testcontroller/method1',
type: "POST",
data: { type: type }
})
.always(function() {
})
.done(function (data) {
console.log("finished");
xxx.xxxxxx.test2();
})
.fail(function (data) {
console.log("failed");
})
},
test2: function() {
var type = $("#type1").val();
var vm =
{
type: type
}
$.ajax({
url: '/testcontroller/method2',
type: "POST",
data: { request:vm }
})
.always(function() {
console.log("always");
})
.done(function (data) {
console.log("done");
window.location.replace("/testpage");
jQuery(window).load(function() {
$("#testdiv").replaceWith(data);
});
})
.fail(function (data) {
console.log("failed");
})
},
また、両方の機能には競合状態があり、時にはそれらが互いに競合することもありますが、それらを分けても最初の質問が残ります。
新しいページに移動すると、すべてのjとデータを含む古いページはなくなります。ローカルストレージやクッキーのいずれかにajaxの結果を "保存"するか、サーバーに送り返して、サーバーからブラウザに送り返さなければなりません。 –
データを気にすることなく、method1が成功を返した後に新しい場所にリダイレクトする必要があります。また、新しいページがレンダリングされるときには、model2のデータをモデルの一部として取得するか、新しいページからの別のajax呼び出しによってデータを取得する必要があります。 –