Php 创建yii中的绝对URL问题

Php 创建yii中的绝对URL问题,php,ajax,yii,https,Php,Ajax,Yii,Https,我在站点中有一个ajax请求,其代码如下: $.ajax({ type: "POST", url: '<?php echo Yii::app()->createAbsoluteUrl("site/checkstatus"); ?>', data:"user_id="+user_id+"", dataType:'html' }).success(function(){ dontBlock = false; }).complete(f

我在站点中有一个ajax请求,其代码如下:

$.ajax({        
    type: "POST",
    url: '<?php echo Yii::app()->createAbsoluteUrl("site/checkstatus"); ?>',
    data:"user_id="+user_id+"",
    dataType:'html'
}).success(function(){ dontBlock = false; }).complete(function(){
    alert('Success');
});
$.ajax({
类型:“POST”,
url:“”,
数据:“user\u id=“+user\u id+”,
数据类型:'html'
}).success(function(){dontBlock=false;}).complete(function()){
警惕(“成功”);
});
现在它在现场运行良好。它有一个类似的域。现在,我必须将此站点移动到负载平衡服务器。所以我创建了类似于域的,并将该域与负载平衡器服务器连接起来。但是现在ajax请求是使用http而不是https发送的


我已经检查了,它说要使用模式(例如http,https)。如果为空,将使用用于当前请求的架构。因此,假设我使用如下URL访问该站点:那么它不应该接受https请求吗?

您可以检查该请求是否为secureRequest

$request = Yii::$app->request;

if (!$request->isSecureConnection) {
  // use http
} else {
  // force the use of https
}

您的负载平衡器可能配置不正确,无法传递HTTPS请求。 负载平衡器可能会接收HTTPS请求,但会通过HTTP将它们传递到应用程序服务器。因此,从应用服务器的角度来看,请求是一个HTTP请求

确定模式的函数如下所示:

public function getIsSecureConnection() {
    return isset($_SERVER['HTTPS']) && (strcasecmp($_SERVER['HTTPS'],'on')===0 || $_SERVER['HTTPS']==1)
        || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_PROTO'],'https')===0;
}

要修复此问题,请确保负载平衡器在将请求传递到应用程序服务器时插入
HTTP\u X\u FORWARDED\u PROTO
头。

如果连接不安全,这不是
HTTP
吗?谢谢,这是负载平衡问题。