请求的资源Symfony上没有“ Access-Control-Allow-Origin”标头

时间:2019-09-30 12:36:04

标签: php symfony cors nelmiocorsbundle

我想通过前端请求访问后端,但总是收到以下错误: 从源“ ...”对“ ...”处的XMLHttpRequest的访问已被CORS策略阻止:对预检请求的响应未通过访问控制检查:邮件头上不存在“ Access-Control-Allow-Origin”标头请求的资源。

我已经尝试使用Nelmio捆绑包并在不同的地方进行搜索,但是没有任何效果。我主要遵循本教程: https://codereviewvideos.com/course/beginners-guide-back-end-json-api-front-end-2018/video/symfony-4-cors-json-api

我也尝试在函数中使用标头,但结果是相同的错误消息:

//Controller
      $response = new Response();
            $response->headers->set('Content-Type', 'application/json');
            $response->headers->set('Access-Control-Allow-Origin', '*');

//nelmio_cors.yaml:
nelmio_cors:
    defaults:
        origin_regex: true
        allow_origin: ['%env(CORS_ALLOW_ORIGIN)%']
        allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
        allow_headers: ['Content-Type', 'Authorization']
        expose_headers: ['Link']
        max_age: 3600
    paths:
        '^/': null

//.env File:

    ###> nelmio/cors-bundle ###
CORS_ALLOW_ORIGIN=^https?://.*?$
###< nelmio/cors-bundle ###

1 个答案:

答案 0 :(得分:0)

我发现Azure提供了内置功能来启用和管理CORS。该函数似乎覆盖了我试图在函数中使用的CORS软件包。因此,您只需要转到azure门户->您的App Service->然后单击CORS(在API下)