2
var url =  base_url+"ajax/user/list_user_info/"+userId;
$.ajax({
        type: "POST",
        url: url,
        data:{user_id:userId},
        contentType: 'application/json',
        dataType: 'JSON',
        success: function(data) {

            if(data.redirect){
                window.location = data.redirect;    
            }
            else {
                $('#profile-main-content').html(data.html);
            }    
        }      
    });

さて、これは私のリクエストで、かなり標準的な AJAX リクエストです。私の問題は、何らかの理由でこのリクエストがコントローラーに到達していないことです。確認するために、データベースで簡単なテスト挿入を実行して、コントローラーの関数の最初の行で結果を確認しました。しかし、テストは挿入されません。base_url の宣言を確認したので、url は正しいです。「userId」を引数にしてPOSTデータとして渡したのは知っていますが、これは私が必死に試しているところです。アイデアはありますか?私が何かについて明確でない場合はお知らせください。ありがとう。

4

1 に答える 1

1

それ以外の:

data:{user_id:userId}

試す:

data: JSON.stringify({user_id:userId})

これは、リクエストのコンテンツ タイプを指定したapplication/jsonため、JSON を送信する必要があるためです。コードでは、JSON リクエストを送信していません。単純なapplication/x-www-form-urlencodedPOST リクエストを送信しています。また、すでに POST 本文で userId を渡しているので、おそらく URL でそれを繰り返す必要はありません。いずれかの方法を使用して、この情報をサーバーに送信します。

また、JavaScript エラーをより簡単にデバッグするために、FireBugを使用することを強くお勧めします。多くのことの中で、AJAX 呼び出し中に送信されている正確な要求/応答を確認し、サーバーから取得している正確なエラー メッセージを分析できます。問題のデバッグがはるかに簡単になります。

于 2012-09-15T15:43:44.103 に答える