如何在Yii中定义自定义jquery ajax的URL

时间:2014-03-23 09:17:50

标签: javascript jquery ajax yii

我一直在外部javascript文件中写一些ajax请求,发现设置URL有些困难。当我在控制台中检查URL未到达控制器时。我在ajax中写了url:

    $.ajax({
    type: 'POST',
    url: 'project/projectDelete',
    data: project_id,
    success: function(msg){
        if(msg == 'done') {
            $('.loaderContainer').hide();
            $('#'+projectid).parent().parent().remove();
        }

    }
}); //END $.ajax

我在控制台中输入了http://localhost/example/index.php/cp/project/project/projectDelete的网址请求。但它应该是http://localhost/decksgo_new/index.php/cp/project/projectDelete。有没有正确的方法在Yii外部javascript中定义ajax中的URL。

2 个答案:

答案 0 :(得分:0)

你可以这样做:

$.ajax({
    type: 'POST',
    url: '<?php echo Yii::app()->createUrl("project/projectDelete") ?>',
    ...
})

答案 1 :(得分:0)

使用CHtml的ajaxLink。这是一个未经测试的例子来说明我的意思!

CHtml::ajaxLink("Label", CHtml::normalizeUrl(array('controller/action'),
    array(
        'success'=>'js:function(msg){ }',  //you can use update and replace see CHtml::ajax         
        'type'=>'POST',
        'dataType'=>'json',
        'data'=>array(
            'uid'=>Yii::app()->user->id, //sent to post as $_POST['uid']
            'project_id'=>$data->pid, //sent to post as $_POST['project_id']
        ),
    )
);