猿问

由于 CORS“Access-Control-Allow-Origin”不存在

我有一个带有 Angular 4 的前端并连接我正在使用 phpCAS,我将它放在一个文件夹 /backend 与我的前端相同的位置。


在我的前面,Angular 的 index.html 所在的位置,有一个 index.php 文件,它首先启动,并在调用我的身份验证后包含 index.html。


然后身份验证按预期工作,但是每当我想断开连接时,我都会使用以下命令调用我的后端:


前面的断开按钮(角度)


logoutCerbere() {

    return this._http.get("./backend/logout.php").subscribe(data => {

       console.log("Disconnected")

   })

}

登出.php


require_once 'init.inc.php';

if (phpCAS::isAuthenticated()) {

    phpCAS::logout();

    session_destroy();

    session_unset();

} else {

    header('HTTP/1.0 401 Unauthorized');

    echo 'HTTP/1.0 401 Unauthorized';    

}

init.inc.php


<?php

require_once 'CAS-1.3.6/CAS.php';

$CAS_HOST = '*******/****';

$CAS_CONTEXT = '/cas/public/';


//$cas_server_ca_cert_path = '/path/to/cachain.pem';

//phpCAS::setCasServerCACert($cas_server_ca_cert_path);


phpCAS::client(CAS_VERSION_2_0, $CAS_HOST, 443, $CAS_CONTEXT);

phpCAS::setNoCasServerValidation();

phpCAS::forceAuthentication();

?>

我收到一个 CORS 错误,指出“同源策略不允许在...读取远程资源(原因:缺少 CORS 标头‘Access-Control-Allow-Origin’)”


我不明白的是我从我的服务器调用它(因为我要求获取我的 php 文件并且我的连接以完全相同的方式工作)所以不应该有 CORS 请求。


我在那里想念什么?


鸿蒙传说
浏览 149回答 1
1回答

慕莱坞森

我缺少的是:在包含之前确实是 PHP,所以没有 CORS,但是一旦我们在包含中,它就是 html/front 域getUser 只是从本地存储中检索数据,因此不涉及 CORS当我想发出断开连接请求时,该请求是在前端提出的,这意味着 CORS 会进行干预。我通过简单地将<a href="backend/logout.php">Disconnect</a>.这意味着 PHP 在服务器端运行,不会涉及 CORS。
随时随地看视频慕课网APP
我要回答