0

当我在 Firebug 中调试代码时,它工作正常 - 它在我的数据库中插入记录并重定向到 URL。但它不起作用。alert('error')当我不使用调试器时,它给了我一个错误。为什么?val是一个序列化数组,

$('#target').submit(function() {
    if (validation == true) {
        $.ajax({
            type: "POST",
            url: "some url",
            dataType: "jsonp",
            data: val,
            success: function(data, textStatus) {
                alert('success');
            },
            error: function(data) {
                alert("error");
            }
        });
    }
    else {
        return false;
    }
});​

//PHP Code
$return['url']= "/index.php?action=jobSeeker/jobSeekerRegistrationConfirmation";
echo $_GET['callback']."(".json_encode($return).");";
4

2 回答 2

2

您说过,当这种行为正确时,您会将用户定向到新的 URL。如果是这种情况,这可能是您的表单提交并在您的 JS 成功调用有机会执行之前重定向到新页面的问题吗?

如果你改变

$('#target').submit(function() {

$('#target').submit(function(e) {
    e.preventDefault();

您的 $.ajax 成功回调应该运行,然后您需要在 JS 的帮助下继续 URL 重定向。

于 2012-08-14T02:47:27.660 回答
0

我觉得你的问题是这样的

您正在使用 发出POST请求ajax,但是在 php 中

echo $_GET['callback']."(".json_encode($return).");";

寻找 a $_GET,因此响应将不是有效jsonp的格式化响应。虽然执行将更新数据库。这就是出现错误的原因。重定向也将成功,因为它与 没有任何关系ajax success

于 2012-08-14T04:28:47.690 回答