0

JSON を POST として渡したページを読み込もうとしています。JSON が送信され、ページが返されますが、以下の JavaScript では元のページのままです。ページにリダイレクトする必要があります

$("#searchForm").submit(function (event) {
                var jsonObjects = {
                    "SomeJson": "SomeData"
                };

                $.ajax({
                    type: "POST",
                    dataType: "json",
                    async: false,
                    data: JSON.stringify(jsonObjects),
                    beforeSend: function (x) {
                        if (x && x.overrideMimeType) {
                            x.overrideMimeType("application/json;charset=UTF-8");
                        }
                    },
                    url: 'Home'
                });
                event.preventDefault();
            });

これは JSON を投稿しますが、ページは投稿しますが、リダイレクトしません。「ホーム」ページがブラウザに返されます。

ポスト引数が存在しないため、成功時にホームにリダイレクトできません

JavaScript を使用せずにこれを実行し、標準の html で送信しようとしましたが、JSON を埋め込むことができないようです

4

1 に答える 1

1

ajax リクエストを行い、サーバーが 3xx リダイレクトで応答した場合、リクエスト元のページは変更されません。これは、どの ajax リクエストもブラウザの現在の場所を変更しないためです。これが、通常 ajax を使用したい理由です。

そのため、リダイレクトを実行できる成功ハンドラーが必要です。これを$.ajax()呼び出しに渡します。

success: function() {
  window.location.href = '/Home'; // or something
}

リクエストが成功すると、現在のページが選択した URL に変更されます。

于 2012-10-24T19:29:11.123 に答える