1

を使ってjquery ajax pluginフォームを送信しています。

$('#profile-form').ajaxForm({
            success:function(response, statusText, xhr, $form){
                console.log(statusText,response,xhr);
            },
            beforeSubmit : function(formData, jqForm, options){
                if ($('#permissions').data("permissionsModified") == true){
                    formData.push({name : 'selectedPermissions', value : JSON.stringify($('#permissions').data('selected'))});
                }
            }
        });

サーバーはリダイレクト リクエストを送り返し、firebug コンソールに次のように表示されます。

302 一時的に移動

フォームのアクション URL の前に。その直後に、リダイレクト URL が表示され、その中の「リクエストが進行中」のシンボルが回転し続けます。ajaxformの成功コールバックでは、statusTextは「success」であり、応答テキストは新しいリダイレクト ページ全体です。サーバーが要求をリダイレクトしたかどうか (そして、リダイレクトされたページをブラウザーに表示する方法) を確認する方法、またはサーバーからの json 応答があったかどうかを確認する方法

4

1 に答える 1

1

私の記憶が正しければ、ブラウザは AJAX リクエストで発行されたリダイレクトに黙って (透過的に) 従う必要があります。

少し掘り下げた後、私は正しいようです。ポイント2を参照してください: http://www.w3.org/TR/XMLHttpRequest/#same-origin-request-event-rules

私が考えることができる唯一の解決策は、カスタム ステータス コードですが、それはパラダイムを少し拡張したようなものです。残念ながら、他にできることはあまりありません。

于 2012-06-05T23:48:49.830 に答える