Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ssl/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 由于访问控制检查,Safari-XMLHttpRequest无法加载X。[检查员] 情况:_Symfony_Ssl_Safari_Xmlhttprequest_Api Platform.com - Fatal编程技术网

Symfony 由于访问控制检查,Safari-XMLHttpRequest无法加载X。[检查员] 情况:

Symfony 由于访问控制检查,Safari-XMLHttpRequest无法加载X。[检查员] 情况:,symfony,ssl,safari,xmlhttprequest,api-platform.com,Symfony,Ssl,Safari,Xmlhttprequest,Api Platform.com,每当您在Safari中访问此URL并查看控制台时,都会出现有关XMLHttpRequest和访问控制检查的错误 奇怪的是,当我打开开发工具并重新加载页面时,它工作正常 有人能解释一下为什么它与开发人员工具一起工作吗。是什么导致了这个问题 资料: 该项目由一个Angular前端(nvm.samengroen.com)和一个API平台

每当您在Safari中访问此URL并查看控制台时,都会出现有关
XMLHttpRequest
访问控制检查的错误

奇怪的是,当我打开开发工具并重新加载页面时,它工作正常

有人能解释一下为什么它与开发人员工具一起工作吗。是什么导致了这个问题

资料: 该项目由一个
Angular
前端(nvm.samengroen.com)和一个
API平台
后端(brokerapi.samengroen.com)组成。它们都在同一个通配符SSL证书上,我发现这可能是答案,但是登录和查看从API获取数据的其他页面没有任何问题

我们还在
.env
文件中尝试了这一点,但没有任何结果:

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

似乎它确实与SSL证书和可能的通配符有关。

请在配置中的
nelmio_cors.yaml
中添加此配置

nelmio_cors:
defaults:
    origin_regex: true
    allow_origin: ['*']
    allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
    allow_headers: ['Content-Type']
    expose_headers: ['Link']
    max_age: 3600
paths:
    '^/api/':
        allow_origin: ['*']
        allow_headers: ['*']
        allow_methods: ['OPTIONS','POST', 'PUT', 'GET', 'DELETE', 'PATCH']
        max_age: 3600
这里我们也允许
选项
请求

注意:我假设所有路由的所有api的前缀都是
/api/


无法在firefox/chrome中复制注销状态下的错误消息。(ff与blocked google tag manager)不,这是正确的,错误只出现在
safari
中。由于您的cors\u allow\u来源的regexp没有任何限制,请改用
*
。说明如果指定的不是
*
,则可能需要添加更多的标题。您是否也检查了手动定制的
选项
请求以查看返回的标题?是的,我们以前有
*
,但这不起作用。我觉得这样问很愚蠢,但是你怎么能手动执行
选项
请求呢?尽管链接的脚本应该修改很多,但是你可以使用更多的资源:通常飞行前请求会失败(甚至可能不会显示在网络控制台中)。我们配置中的唯一区别是路径允许\ u头设置为
['Authorization'、'X-Requested-With'、'Content-Type'、'Accept'、'Origin'、'X-Custom-Auth']
而不是
*
。我可以试一试。
nelmio_cors:
defaults:
    origin_regex: true
    allow_origin: ['*']
    allow_methods: ['GET', 'OPTIONS', 'POST', 'PUT', 'PATCH', 'DELETE']
    allow_headers: ['Content-Type']
    expose_headers: ['Link']
    max_age: 3600
paths:
    '^/api/':
        allow_origin: ['*']
        allow_headers: ['*']
        allow_methods: ['OPTIONS','POST', 'PUT', 'GET', 'DELETE', 'PATCH']
        max_age: 3600