jquery表单插件:如何正确处理从服务器发回的重定向请求

时间:2012-05-20 09:13:55

标签: javascript jquery html

我正在使用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暂时移动

在表单的动作网址前面。 在此之后,会立即显示重定向网址,并且'请求正在进行中'从中继续旋转的符号。在ajaxform的成功回调中, statusText 是"成功"响应文本是整个新的重定向页面。如何检查服务器是否已重定向所请求的(然后,如何在浏览器上显示重定向的页面)或者是否有来自服务器的json reposnse

1 个答案:

答案 0 :(得分:1)

如果我没记错的话,浏览器应该默默地(透明地)遵循通过AJAX请求发出的任何重定向。

经过一番挖掘,看来我是对的,见第2点:http://www.w3.org/TR/XMLHttpRequest/#same-origin-request-event-rules

我能想到的唯一解决方案是自定义状态代码,但这种范式有点拉伸范式。不幸的是,没有别的办法可以做到。