0

ユーザーが作成したチケット/クエリを一覧表示するページがあります。各チケットには、ユーザーがチケットをクリックしたときに表示するメモが関連付けられています。(これには CJuiDialog を使用したい)。

ページの読み込み時間を節約するために、ajax を使用してダイアログの .

私は常にエラーを返す次のコードを使用しています: "else: undefined"。ただし、Chrome のコンソールは次のエラーを返します: リソースの読み込みに失敗しました: サーバーは 403 (Forbidden) のステータスで応答しました

$.ajax({
    url: '<?php echo Yii::app()->createAbsoluteUrl("tblTickets/AjaxDialog"); ?>',
    type: "POST",
    data: {tno: tid},  
    error: function(xhr,tStatus,e){
        if(!xhr){
            alert(" We have an error ");
            alert(tStatus+"   "+e.message);
        }else{
            alert("else: "+e.message); // the great unknown
        }
    },
    success: function(resp){
        alert('success');  // deal with data returned
    }
});

それを機能させるために必要なものは他にありますか?

編集: accessRules に追加を行った結果、変更が行われました。403 エラーではなく 500 エラーが表示されるようになりました。私は Yii を初めて使用します。Ajax を介して actionAjaxDialog と呼ばれる TicketsController 内の関数を呼び出そうとしています。

EDIT2: OK 500 エラーは、呼び出していた PHP 関数が原因でした。ajax は現在動作しているようです。しかし、私にはまだ問題があります。データを渡すことができません。常に「未定義のインデックス」エラーが発生します

4

3 に答える 3

0

これを行う方法を見つけました。アヤックスは大丈夫だった。

代わりに、コントローラー内で accessRules 関数を更新し、正しいユーザー グループに対して許可されたアクションに「ajaxdialog」を追加する必要がありました。

array('allow',  // allow all users to perform 'index' and 'view' actions
    'actions'=>array('index','view','ajaxdialog'),
    'users'=>array('*'),
),
于 2013-08-28T11:20:30.410 に答える
0

これを試してみてください

 $.ajax({
            url:"<?php echo Yii::app()->createUrl('/controllername/actionname');?>",
            data:{},//data for throwing the expected url
            type:"POST",//you can also use GET method
            dataType:"html",//you can also specify for the result for json or xml
            success:function(response){
                 $('#news').html(response);
            },
            error:function(){
                 alert("Failed request data from ajax page");
            }
        }); 
于 2013-08-12T13:40:11.953 に答える