[SOLVED] csrf from javascript

Hi all,

I enable csrf on my yii project, but my javascript below could not work.




<script type="text/javascript">


    $('#deptId').change(function() {

        $.ajax({

            type :'post',

            url : 'http://localhost/warehouse/index.php/coaList/GenerateCoaNumber',

            data : 'dept='+$('#deptId').val(),

            dataType : 'json',

            success : function(data) {

                $('#coaNo').val(data.no);

            }

        });

    });

</script>


can anyone help?


Cheers,


Daniel






<script type="text/javascript">


    $('#deptId').change(function() {

        $.ajax({

            type :'post',

            url : 'http://localhost/warehouse/index.php/coaList/GenerateCoaNumber',

            data : 'dept='+$('#deptId').val()+'&<?php echo Yii::app()->request->csrfTokenName;?>=<?php echo Yii::app()->request->csrfToken;?>',

            dataType : 'json',

            success : function(data) {

                $('#coaNo').val(data.no);

            }

        });

    });

</script>



In your view file.

This solution didn’t work for me. I used firebug and saw that the post was displayed as:


<?php echo Yii::app()->request->csrfTokenName;?>=<?php echo Yii::app()->request->csrfToken;?>

My solution:




    <?php 

	$csrf=Yii::app()->request->csrfTokenName.'='.Yii::app()->request->csrfToken;

	echo CHtml::ajax(array(

		'url'=>array('setpass', 'id'=>$model->idEmployee),

		'data'=>"js:$(this).serialize()+'&$csrf'",

		'type'=>'post',

		'dataType'=>'json',

		'success'=>"...




Seems to be working so far…