在yii2中发送ajax请求:阻止跨源请求

时间:2016-01-07 05:30:23

标签: ajax yii2

这是我的剧本:

$.post('index.php?r=site/filterbyprice',{
        price_range:values,
        _csrf : $("#csrftoken").val()
        }
        ,function(r){
            console.log(r);
            if(r==""){
                $("#all-ads").html('<div class="error-page"></div>');
            }
            else{
                $("#all-ads").html(r);  
            }
    });

控制器代码:

public function actioAbc(){
    echo 'inside abc';
}

我遇到以下错误:阻止跨源请求:同源策略禁止在http://mandigoods.com/frontend/web/index.php?r=site/abc读取远程资源。 (原因:CORS标题&#39;访问控制 -

1 个答案:

答案 0 :(得分:0)

可能是标头配置问题。首先,尝试使用以下命令生成您的网址:

$url = yii\helpers\Url::to(['site/filterbyprice']);

并将其包含在您的视图中:

$this->registerJs(<<<JS

$.post('{$url}',{...});

JS;
);

排除Yii2应自动处理的_csrf : $("#csrftoken").val()

然后,我检查您的服务器配置(Apache / Nginx)有关您的标头,请查看this answer以了解配置。