NGINX“Access-Control-Allow-Origin”标头包含多个值

2023-11-22

我有一个带有 PHP 的 NGINX 服务器(假设主机名为http://myserver.com)。我有一个 PHP 脚本,我正在通过 XHR 从本地主机上的网页访问该脚本。我将它用作类似于 freegeoip.net 的 GeoIP 服务器。

我正在尝试将 XHR 锁定到特定域。

这是我的配置设置:

location ~ \.php$ {
    try_files $uri =404;
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;

    fastcgi_param GEOIP_COUNTRY_CODE $geoip2_data_country_code;
    fastcgi_param GEOIP_COUNTRY_NAME $geoip2_data_country_name;
    fastcgi_param GEOIP_COUNTRY_GEONAME_ID $geoip2_data_country_geoname_id;
    fastcgi_param GEOIP_CITY_NAME $geoip2_data_city_name;
    fastcgi_param GEOIP_CITY_GEONAME_ID $geoip2_data_city_geoname_id;
    fastcgi_param GEOIP_CONTINENT_CODE $geoip2_data_city_continent_code;
    fastcgi_param GEOIP_CONTINENT_GEONAME_ID $geoip2_data_city_continent_geoname_id;
    fastcgi_param GEOIP_LATITUDE $geoip2_data_city_location_latitude;
    fastcgi_param GEOIP_LONGITUDE $geoip2_data_city_location_longitude;
    fastcgi_param GEOIP_TIME_ZONE $geoip2_data_city_location_timezone;
    fastcgi_param GEOIP_ISP $geoip2_data_city_traits_isp;
    fastcgi_param GEOIP_IP_ADDRESS $geoip2_data_city_traits_ip_address;

    set $cors "";

    if ($http_origin ~* 'https?://(www\.domain1\.com|www\.domain2\.com)')
    {
        set $cors "true";
    }

    if ($cors = 'true')
    {
        add_header 'Access-Control-Allow-Origin' "$http_origin";
        add_header 'Access-Control-Allow-Credentials' 'true';
        add_header 'Access-Control-Allow-Methods' 'GET, POST, PUT, DELETE, OPTIONS';
        add_header 'Access-Control-Allow-Headers' 'Accept,Authorization,Cache-Control,Content-Type,Pragma,DNT,If-Modified-Since,Keep-Alive,Origin,User-Agent,X-Mx-ReqToken,X-Requested-With';
    }

    if ($request_method = 'OPTIONS')
    {
        return 204;
    }
}

我遇到的问题是,当我执行 XHR 请求时,出现以下错误:

XMLHttpRequest cannot load http://myserver.com/. The 'Access-Control-Allow-Origin' header contains multiple values '*, http://localhost', but only one is allowed. Origin 'http://localhost' is therefore not allowed access.

我只有一个电话add_header 'Access-Control-Allow-Origin' "$http_origin";在配置文件中,那么为什么我有多个值呢?有没有办法可以禁用第一个呼叫,即*?


1.) 让应用程序动态批准并添加响应标头。

$allowed_domains = ['http://allowed.com','http://another_allowed.com'];

function add_cors_header() {
    if (in_array($_SERVER['http_origin'], $allowed_domains)) {
        header('Access-Control-Allow-Origin', $_SERVER['http_origin']);
    }
}

2.) 或者安装启用 Lua 的 OpenResty 版本的 Nginx 并执行相同的操作,但在 Nginx conf 文件中使用 Lua。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NGINX“Access-Control-Allow-Origin”标头包含多个值 的相关文章

  • Symfony2:twig 中的 form_widget 调用抛出异常“可捕获的致命错误......必须是 Symfony\Component\Form\FormView 的实例”

    当我在控制器操作中创建一个表单时 如下所示 form this gt createFormBuilder gt add field name gt getForm return array form gt form 我尝试在树枝模板中渲染此
  • 将 XML 数据提取到 php [重复]

    这个问题在这里已经有答案了 我正在尝试从 XML 文件中提取数据 http freegeoip net xml google com http freegeoip net xml google com 您可以看到该文件的内容类似于
  • 在 PHP 中验证约 400MB 的大型 XML 文件

    我有一个很大的 XML 文件 大约 400MB 在开始处理之前我需要确保它的格式正确 我尝试的第一件事是类似于下面的内容 这很棒 因为我可以找出 XML 是否格式不正确以及 XML 的哪些部分 不好 doc simplexml load s
  • 是否可以共享 Symfony2 安装(一台服务器上的多个网站 [域])

    我想在一个根 服务器 下托管多个基于 Symfony2 的网站 是否可以共享 symfony 自己的文件 供应商等 有人知道教程吗 管理起来困难吗 AFAIK Symfony 安装大约有 600MB 我不想以冗余方式保存它 我看起来确实有可
  • 命令运行时从 shell_exec 命令获取输出

    我正在编写一个 PHP 脚本网页 该网页旨在接受先前上传到服务器的 JFFS2 图像的文件名 然后 该脚本将使用映像重新刷新服务器上的分区 并输出结果 我一直在用这个 tmp shell exec update flash v filena
  • 用于添加和删除客户名称的 Web 表单出现问题

    我正在尝试创建一个 Web 表单 其中列出了所有客户 然后为您提供一个文本字段 旁边有一个按钮 您可以在其中添加客户 然后它应该显示客户列表 旁边有删除按钮 您可以单击该按钮从数据库中删除客户 我正在让它发挥作用 对于初学者来说 它会回显
  • 使用 LIKE 和撇号的 Mysql 查询问题

    所以我有一个有趣的问题 我从未遇到过 并且似乎找不到太多有关纠正该问题的信息 我有一个庞大的数据库 里面有大量的数据 相当于 10 年的数据 并试图对其进行搜索 现在搜索功能运行良好 但最近有人让我注意到一个 错误 如果你愿意的话 我尝试对
  • PHP中是否可以使用filter_var过滤带小数点的整数?

    我需要像这样过滤值100 50在 PHP 中使用filter var 现在我这样使用 filter var POST amount FILTER SANITIZE NUMBER INT 它给我的结果是10050 我怎么解决这个问题 提前致谢
  • PHP 中两个关联多维数组的值求和

    我正在尝试对两个关联数组的值求和 这是第一个数组 Array Jan 01 2013 gt Array COM gt 100 RES gt 200 Oct 28 2014 gt Array COM gt 300 RES gt 400 这是第
  • Laravel 6:尚未设置外观根

    经过一段时间的努力 我已将我的网站从 Laravel 5 8 迁移到 Laravel 6作曲家更新我在网站上遇到此错误 并且仅使用命令PHP工匠 PHP Fatal error Uncaught RuntimeException A fac
  • YouTube 频道 URL 的正则表达式

    如何使用 REGEX 验证 YouTube 频道 URL 我发现了这个模式 但它不能正常工作 http https www youtube com channel user a zA Z0 9 1 谁能帮我 你的问题是之后的额外管道user
  • 使用nginx容器作为反向代理时的原始url

    我有一个 Web 应用程序部署为码头集装箱 我也有一个nginx容器 使用dnsmasq解析器 设置为充当 Web 应用程序前面的反向代理 它的 80 端口映射到主机 我的应用程序使用 SSO 身份验证 当我使用身份提供商登录时 回调 ur
  • PHP date_sun_info 错误时间

    我正在尝试使用 PHPdate sun info函数获取全天太阳某些位置的时间信息 目前我正在使用类似于中的代码文档 http php net manual en function date sun info php sun info da
  • CMS:将自定义页面存储为文件或 MySQL 数据库中?

    我正在 PHP 中创建一个自定义 CMS 从头开始编写 并且想知道是否应该将用户创建的页面存储为文件或存储在 MySQL 数据库中 内容全部是 HTML 代码 至少目前是这样 我无法决定该做什么 因为用 php 编写文件似乎存在安全风险 并
  • 如何在 php 中为每个其他函数调用自动调用函数

    Class test function test1 echo inside test1 function test2 echo test2 function test3 echo test3 obj new test obj gt test
  • 如何将事件插入为 - Out Office

    我目前正在使用 Google Calendar API 并尝试在我的谷歌日历中插入新的 外出 事件 我使用以下代码插入事件 client getClient service new Google Service Calendar clien
  • 根据产品属性在 Magento 中创建购物车规则

    我在一个类别中有产品 针 有些以 100 支为一包出售 有些以 500 支为一包出售 盒子中的针数被设置为产品属性 我想根据购物车中的针总数应用购物车规则 F x 如果您购买 1000 2000 根针头 无论 500 100 包的组合如何
  • Laravel中with()和compact()有什么区别

    功能有什么区别with and compact 在 Laravel 中这两个例子 示例1 return View make books index gt with booksList booksList 示例2 return View ma
  • 测验程序的 MySql 数据库设计

    我目前正在开发一个项目 主要是创建一个测验应用程序 它将能够进行包含 10 到 20 个问题的多项选择题或简答题的测验 它需要能够根据正确答案检查用户的答案 然后对用户的答案进行评分 稍后 我可能会实现一个后端功能来在线创建测验 但现在我将
  • 如何使用 PHP 从 iframe 获取 url

    如何从下面的链接获取 YouTube 网址 您可以使用 regex 和 preg match 函数 preg match src iframe string match url match 1 UPDATE如果您有使用 php 生成的页面或

随机推荐

  • MOTODEV Studio 与 Android Google 插件 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 有人有什么意见 经验 建议
  • 如何在不使用 ping 的情况下检查 Web 服务是否已启动并正在运行?

    我如何检查 Web 服务中的方法是否正常工作 我无法使用 ping 我仍然想检查客户端从 Web 服务调用的任何类型的方法 我知道这很难一概而论 但应该有某种方法 我使用这个方法并且效果很好 public bool IsAddressAva
  • 致命错误:numpy/arrayobject.h:没有这样的文件或目录

    我能分享的内容有限 因为这是我从 Ubuntu 14 04 移植到 16 04 的大量代码的一部分 这应该是微不足道的 但不知怎的 我正在为此苦苦挣扎 没找到numpy arrayobject h我在源文件中引用 include
  • UTF-8 是目前非 ASCII 字符 QR 码的首选编码吗?

    Google 使用 UTF 8 作为其非常流行的编码器的默认值 据我所知 他们甚至没有添加字节顺序标记 问题是大多数扫描仪似乎仍然使用 JIS8 QR 2000 而不是默认的 iso 8859 QR 2005 因此使用 iso 8859 进
  • 如何刷新我从 iOS 中的 google oauth 2.0 获得的令牌

    我正在制作一个 iOS 应用程序 它使用用户的 google 帐户从他的 YouTube 帐户获取数据并向他们显示 第一步是使用 gtm2 对用户进行身份验证并获取访问令牌和刷新令牌 问题是访问令牌在 60 分钟后过期 我必须再次登录并允许
  • 以编程方式多次更改操作栏颜色

    我在用 getSherlockActivity getSupportActionBar setBackgroundDrawable new ColorDrawable 0xff00ACED 要更改片段中操作栏的颜色 它可以工作 但是 如果我
  • 如何在sql server 2005中获取x和y之间的日期表

    我只是想要一种快速的方法 最好不使用 while 循环 创建日期 x 和日期 y 之间的每个日期的表 这样我就可以将外部连接保留到一些统计表 其中一些统计表没有某些记录之间的天数 允许我用 0 标记缺失的天数 严格来说 这并不能完全回答你的
  • C++ 缓冲流 IO

    据我了解 默认情况下 C 支持的所有流 IO 都会被缓冲 这意味着要输出的数据被放入缓冲区 直到缓冲区满 然后发送到输出设备 类似地 对于输入 一旦缓冲区为空 就会读取数据 所有这些都完成了 这样就减少了昂贵的系统数量可以尽量减少通话次数
  • C# 中 Task.FromResult 有什么用

    在 C 和 TPL 中 任务并行库 the Task类代表一项正在进行的工作 它产生 T 类型的值 我想知道需要什么任务 FromResult方法 也就是说 在您手头已经有了生产值的情况下 需要将其包装回任务中吗 唯一想到的是它被用作接受任
  • 解析 applicationContext.xml 会呈现“java.lang.NoSuchMethodError”。这可能是由依赖性问题引起的吗?

    我正在使用带注释的应用程序上下文调用测试方法 Junit ContextConfiguration locations classpath applicationContext xml 测试失败并显示以下堆栈跟踪 11 20 39 793
  • 如何使用 JavaScript 正则表达式替换字符串中双引号之间的文本?

    我有一个 JS 字符串 其中包含双引号之间的文本 我想使用正则表达式将该文本替换为另一个用户输入的文本 但我不知道该怎么做 例如 给定字符串 The book A Farewell to Arms will be published aga
  • jQuery 单击除 div 及其子元素之外的所有内容

    我想在单击任意位置时执行某些操作 但单击 div 及其子级时除外 这是我到目前为止所尝试过的 但它不起作用 单击它的子级仍然会执行括号内的内容 body on click not calculator function e 我不能使用这样的
  • 动态更改android gridview中的列号?

    我的应用程序在 gridview 中以横向显示图像图标 为此 我使用 xml 作为
  • 根据一列对另一列进行排序

    我想根据 B 列的值对 A 列进行排序 在 Google 表格中 这很简单 SORT A1 A100 B1 B100 TRUE 如何做到这一点Excel 要手动执行此操作 您可以突出显示要排序的所有列 然后单击 主页 选项卡中 排序和过滤
  • 在 Matplotlib 极坐标图上设置径向轴

    我正在极坐标图上绘制方位角 仰角曲线 其中仰角是径向分量 默认情况下 Matplotlib 绘制从中心 0 到周边 90 的径向值 我想扭转它 所以 90 度是在中心 我尝试通过调用 ax set ylim 90 0 设置限制 但这会导致抛
  • 如何使用数据关闭来关闭引导面板?

    我有一个打开面板的按钮 我希望能够像使用警报一样关闭它 Bootstrap 文档中的默认面板示例 div class panel panel default div class panel heading Panel heading wit
  • Python dask 数组对象的项分配

    我创建了一个 Python dask 数组 并尝试按如下方式修改数组的一部分 import numpy as np import dask array as da x np random random 20000 100 100 Creat
  • 无法克隆存储库:致命:R 任何 gitolite-admin gitolite 均被 Fallthru 拒绝

    我正在设置gitolite第一次 我正在跟进本说明 当我 ssh 时 看起来很好 ssh p 2222 gitolite debian PTY allocation request failed on channel 0 hello git
  • std::allocator 构造/销毁与放置 new/p->~T()

    对于我的一个项目 我正在从头开始编写一些 STL 容器 我有我的理由 由于我如此密切地模仿 STL 的功能和接口 因此我会尽最大努力遵守 如果它与标准结构同名 它将尽可能符合标准 的政策 因此 当然我的容器将分配器作为模板参数 这非常好 因
  • NGINX“Access-Control-Allow-Origin”标头包含多个值

    我有一个带有 PHP 的 NGINX 服务器 假设主机名为http myserver com 我有一个 PHP 脚本 我正在通过 XHR 从本地主机上的网页访问该脚本 我将它用作类似于 freegeoip net 的 GeoIP 服务器 我