2010-12-16 10 views
0

コードignite 1.7.1で正常に動作しているコードの次は、コントローラメソッドuser/checkAvailability?requestSource = USER_AVAILABILITYを呼び出すことができません。警告をアラートとして印刷する( 'In side Error')。コード内でAjaxリクエストを処理できませんignitor1.7.3

私はjQueryのAjaxリクエストのいずれも

ないのは、コントローラのメソッドをコールするつもりはない理由を理解することは、

コントローラに

function checkAvailability(){ $.blockUI({message: null}); 
    var newMessage = 'E1'; 
    $('#searchLoading').show();  alert('I am here');  $.ajax({ 
       type: "post", 
       url: "user/checkAvailability?requestSource=USER_AVAILABILITY", 
       cache: false,    
       data: "userName=" + $("#userName").val(), 
       success: function(json){ 
        alert("Printing Json"); 
        try{ 
         $.unblockUI();     
         var obj = JSON.parse(json);           

         if(obj[0].STATUS=='true'){             
          newMessage = "E15"; 
          $('#checkUser').hide();       
         }else{ 
          newMessage = "E16";      
          $("#checkUser").hide();      
         }     
         showMessage(newMessage); 
         $('#searchLoading').hide(); 
        }catch(e) {  
          alert('In side Exception'); 
          showMessage("E1"); 
          $.unblockUI(); 
          $('#searchLoading').hide(); 
        }  
       }, 
       error: function(){ 

        alert('In side Error'); 
        $('#searchLoading').hide(); 
        $.unblockUI();     
        $("#checkUser").hide();      
        showMessage(newMessage);   
        $("form")[0].reset(); 

       }  }); 
      } 

CI法を助けてください..作業していないではないことがわかりましたユーザー

/** 
     This method is used to check User Name availabiliy. 
    */ 

    public function checkAvailability(){  

     $userName = trim($this->input->post('userName')); 

     $query = $this->UserModel->getUser($userName); 

     $status =array("STATUS"=>"true"); 

     if($query){ 
      $status = array("STATUS"=>"false"); 
     } 

     echo json_encode (array($status)) ; 
    } 
+0

CIコードを転記できますか? – Fred

+0

が完了しました。 – Vicky

+1

CodeIgniterです。 –

答えて

1

通常、エラーはAJAXリクエストが行うと表示されますページには到達しません。

変更

url: "/user/checkAvailability?requestSource=USER_AVAILABILITY"

または

url: "http://site.com/user/checkAvailability?requestSource=USER_AVAILABILITY"

+0

こんにちは、これを試してみましたが、まだ問題がありますhttp://localhost/businesscaliber/index.php/user/checkAvailability?requestSource = USER_AVAILABILITY – Vicky

1

1.7.3にアップグレードする人々のための問題の最大の原因すなわち絶対パスへのあなたのAJAXリクエスト内のURLは、その彼ら設定ファイルをオーバーライドします。すべての設定ファイルが手元にバックアップされているか、後で元に戻されているかを確認してください。

Sodは、AJAXを破ることのない1行のコードで、セキュリティー・ホットフィックスとは別に1.7.3で変更されました。

+1

また、これはAJAXですので、Firebugを使ってデバッグしてください。レスポンスを見ると、すぐにエラーを見つけることができます。 –

+0

Ajaxに必要な設定はありますか?また、私は火かき棒で試したところ、エラーのどれも見つかりませんでした。 – Vicky

+0

このAJAXコールのリクエストに対して表示される応答は何ですか?あなたはConsoleタブを見ていますか? AJAXとFirebugの仕組みを知っていますか? :) –

0

また、JQueryでAJAXリクエストを作成するときに、dataTypeプロパティをjsonに明示的に設定することもできます。 JQueryがJSONを他のものとして解析しようとしている可能性があります。ここ

dataType:'json' 

さらに詳しい情報:http://api.jquery.com/jQuery.ajax/

そして、私はあなたのAJAXリクエストをいただきましたが起こって見つけるためにFirebugのか、Chromeのデベロッパーコンソールのいずれかを使用するにはフィルのアドバイスをエコーと思います。

+0

応答がある場合、JSONは後で画像に来ます。しかし私の問題は、私はAjaxリクエストを処理することができません。 – Vicky

+0

私は参照してください。私の間違い。コールバック関数でJSONをdeserializeしています。 JQuery独自の組み込みJSONデシリアライズを使用していると思いました。気にしないで。続ける! :-) –

0

あなたのconfig.phpに

を有効にクエリ文字列が

へのシステム/アプリケーション/設定/ config.phpの

変更

$config['enable_query_strings'] = FALSE; 

のライン151の周りにする必要があります持っていることを確認してください

$config['enable_query_strings'] = TRUE; 

あなたには理由があると思われますか?requestSource = USER_AVAILABILITY ta URL上で垣間見る。

また、はい、あなたのajax URLに完全なURL(http://を含む)を使用してください。

関連する問題