php CORS飞行前未成功

mgdq6dx1  于 2023-01-29  发布在  PHP
关注(0)|答案(2)|浏览(215)

几个小时以来,我一直在尝试控制CORS ....从一个尝试解决php rest API的Angular项目。问题是,预检失败。身份验证应该通过一个承载令牌完成,我也从后端获得。之后,我尝试发送这个,然后在一个沿着。

observable
    .pipe(
        switchMap(token => {
            return this.http.get<any>(this.authService.getBackendPath() + 'menuCategory', {
                headers: new HttpHeaders({
                    Authorization: `Bearer ${token}`
                })
            });
        }),
        tap(res => console.log(res))
    )
    .subscribe();

附件是来自服务器的响应。
https://i.stack.imgur.com/WSl5o.png
在后台,我已经发布了一切可能的东西。

header('Content-Type: application/json, charset=utf-8');
header('Cache-Control: no-transform,public,max-age=300,s-maxage=900');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Method: POST, GET, OPTIONS');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Headers','Content-Type, Authorization, Access-Control-Allow-Origin, Origin, X-Requested-With, Access-Control-Allow-Credentials, authorization');

至于CORS,我还有点经验,不知道该怎么解决这个问题。有人有什么想法吗?

pxyaymoc

pxyaymoc1#

浏览器说:

  • 这是一个OPTIONS请求。我可以提出包含我的凭据的请求吗?*

服务员说:

  • 403禁止访问!您不允许进行刚才的请求 *

您需要从要进行身份验证的要求中排除使用OPTIONS方法的请求。

rkkpypqq

rkkpypqq2#

OPTIONS方法添加die()

<?php
 require_once ...

 header('Content-type: application/json');
 header("Access-Control-Allow-Origin: *");
 header("Access-Control-Allow-Headers: *");
 header("Access-Control-Allow-Methods: GET, POST, OPTIONS");

 if ($_SERVER['REQUEST_METHOD'] === "OPTIONS") {
   die();
 }

 // CODE

相关问题