关于javascript:AjaxSubmit,响应时有window.location

AjaxSubmit with window.location on response

我对AjaxSubmit有问题…问题是,当我提交一个表单并从具有window.location脚本的php获得响应时,页面根本不会更改…

当表单正确提交时,我的php脚本只返回window.location脚本,否则,它返回一个在success函数上解析的JSON。

使用chrome的工具,我看到它在网络选项卡上加载window.location url,但它不向用户显示它…

这是我的代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$("form").submit(function(e) {
    e.preventDefault();
    $("form").ajaxSubmit({
        success: function(resp){
            try{
                resp=JSON.parse(resp);
                alert(resp["error"]);
            } catch(e){
                $("").html(resp);
            }

        }
    });
    return false;
});

我需要怎么做才能让它工作?AjaxSubmit的Options参数有什么属性可以解决这个问题吗?


只需在服务器应答中提供不带JS代码的URL,然后执行:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$("form").submit(function(e) {
    e.preventDefault();
    $("form").ajaxSubmit({
        success: function(resp){
            try{
                resp=JSON.parse(resp);
                window.location.href = resp;
            } catch(e){
                $("").html(resp);
            }

        }
    });
    return false;
});