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).");";

を探している$_GETため、応答は有効なjsonp形式のものではありません。ただし、実行によりデータベースが更新されます。これがエラーを取得する理由です。との関係がないため、リダイレクトも成功しajax successます。

于 2012-08-14T04:28:47.690 に答える