将 Access-Control-Allow-Origin 添加到 PHP 标头

2024-04-05

我正在尝试解决 WebGL 应用程序上的 CORS 限制。我有一个可以解析 URL 并返回图像的 Web 服务。由于此 Web 服务未启用 CORS,因此我无法使用返回的图像作为纹理。

我本来打算:

  1. 编写 PHP 脚本来处理图像请求
  2. 图像请求将通过查询字符串作为 url 发送 范围

PHP 脚本将:

  1. 使用查询字符串 url 调用 Web 服务
  2. 获取图像响应(Web 服务返回内容类型:图像响应)
  3. 将 CORS 标头(添加 Access-Control-Allow-Origin)添加到 回复
  4. 将响应发送到浏览器

我尝试使用各种技术来实现这一点,包括 CURL、HTTPResponse、plain var_dump 等,但在每种技术的某个时刻都陷入了困境。

所以我有两个问题:

  1. 该方法足够好吗?
  2. 考虑到该方法已经足够好了:

我在 CURL 方面取得了最大的进步。我可以通过以下方式获取图像标题和数据:

$ch = curl_init();
$url = $_GET["url"];
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type:image/jpeg'));

//Execute request 
    $response = curl_exec($ch);

//get the default response headers 
    $headers = curl_getinfo($ch);

//close connection 
    curl_close($ch);

但这实际上并没有改变将响应内容类型设置为 image/jpeg。它将 header + 响应转储到内容类型为 text/html 的新响应中,并在浏览器中显示 header 和图像 BLOB 数据。

如何让它以我想要的格式发送响应?


事实证明,最简单的方法就是答案。只需在发送响应之前插入标头即可。

    $ch = curl_init();
    $url = $_GET["url"];
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, false);

//Execute request 
    $response = curl_exec($ch);

//get the default response headers 
    header('Content-Type: image/jpeg');
    header("Access-Control-Allow-Origin: *");

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

将 Access-Control-Allow-Origin 添加到 PHP 标头 的相关文章

  • 使用 Graph API 删除 facebook 帖子 - 无法正常工作

    我使用以下命令在我的 Facebook 页面上发布消息 attachment array access token gt access token message gt This is a test Message 4 name gt Th
  • MATLAB 可执行文件太慢

    我使用以下命令将 MATLAB 程序转换为基于控制台的应用程序deploytool在 MATLAB 中 MATLAB m文件执行大约需要 2 秒 但在我将其转换为可执行文件并调用 exe 执行需要45秒 太长了 我想将 MATLAB 程序与
  • PHP DateTime::修改加减月份

    我一直在与DateTime class http www php net manual en class datetime php最近在添加月份时遇到了我认为是一个错误 经过一番研究后 看来这不是一个错误 而是按预期工作 根据查到的文档he
  • Stripe API - 代理后面的 PHP Curl 请求

    我正在尝试使用 php 和curl 在代理后面向 stripe api 发出请求 如果我不在代理后面 则以下内容有效 ch curl init curl setopt ch CURLOPT URL https api stripe com
  • PHP和.htaccess认证解决方案

    这是布局 web root admin dir index php js img other files dirs dir files 到目前为止 我使用 htaccess passwd 保护管理目录 因为我希望对该目录中的所有文件 包括
  • Laravel 资源策略始终为 false

    我试图允许用户在 Laravel 5 4 中查看自己的个人资料 用户策略 php public function view User authUser user return true 在 AuthServiceProvider php 中
  • mPDF 临时文件不可使用 Yii 写入

    我尝试打印 PDF 格式的证书 但是当我将代码推送到暂存阶段时 它说 Temporary files directory var www protected vendor mpdf mpdf src Config tmp is not wr
  • count 和 groupby 在一个查询中一起使用

    以下查询正在获取页面上的一些产品信息 这很好 但我也想以文本形式显示它出现的产品编号 但是 我使用了groupby但我也想用count on pro id SELECT FROM cart WHERE session id SESSION
  • 致命错误:调用未定义的方法 mysqli_stmt::query()

    为什么我会收到以下错误 致命错误 调用未定义的方法 mysqli stmt query mysqli new mysqli localhost or die mysqli gt connect error function checklog
  • PHP 数据库显示在具有不同锚标记的相同字段中

    我四处寻找 看看这是否可行 但却空手而归 首先 这是我的代码 div style display none div ul li li li li li li ul
  • 我们在哪里/什么时候使用 JSON?

    你能告诉我 JSON 有什么用 在 Javascript 和 PHP 中 当我们需要 JSON 方法时 我从以下链接中阅读 但是 我没有获得有关任何项目的 JSON 实现的任何信息 http www json org js html htt
  • 使用 php 和 sendmail 发送有关测试 docker 容器的电子邮件

    我用的是ubuntu 16 04 我有一个 测试 docker docker compose 容器运行 php 5 6 和 apache 2 4 在生产平台 没有docker 上 邮件是通过sendmail发送的 如何在docker容器上发
  • Zend 框架 PDF 问题

    又是我 伙计们 我有一个小问题 Create new PDF pdf new Zend Pdf Add new page to the document page pdf gt newPage Zend Pdf Page SIZE A4 p
  • 如何使用批处理脚本调用的curl 获取http post 请求的响应代码?

    我正在努力为从我们的工具之一发送 http post 请求提供支持 该工具基本上通过 http 请求执行作业 实现此目的的方法是该工具使用多个参数调用 RunScript bat 该脚本解析这些参数并在验证后发出curl post 请求 P
  • PHP mysql_num_rows 死错误

    我想创建一个页面 用户可以在其中添加他们的信息 我已经创建了该页面 但我真正的问题是代码 我有一些问题 这部分代码
  • 从数据库中给定时间起经过的时间

    我有一个 HTML 表 其中包含从数据库中提取的记录 我正在使用 PHP MySQL 我的表中名为 Timer 的列未从数据库中检索 我需要在此处显示经过的时间 从数据库中的特定时间开始 例如 假设现在的时间是2013年2月21日下午6点2
  • PHP filesize() 适用于除一个文件之外的所有文件,给出 stat failed 错误

    我正在编写一个 PHP 页面 该页面通过抓取现有 HTML 页面来生成播客提要 一切正常 但我的 mp3 文件之一出现 filesize stat failed 错误 据我所知 该文件没有损坏 并且播放得很好 我还将文件重新上传到服务器 它
  • cakephp 3.0 如何使用值而不是 id 填充选择字段

    我一直在寻找以前的答案 但我找到的答案与旧的 cakephp 版本有关 我有两个表 杂志 和 问题 其中存在关系 问题 属于 杂志 问题表如下所示 public function initialize array config this g
  • PHP + FTP删除文件夹中的文件

    我刚刚编写了一个 PHP 脚本 它应该连接到 FTP 并删除特殊文件夹中的所有文件 它看起来像这样 但我不知道需要什么命令来删除文件夹日志中的所有文件 任何想法
  • PHP 启动:运行单元测试时无法加载动态库

    当我尝试运行单元测试时 出现此错误 PHP 警告 PHP 启动 无法加载动态库 bz2 尝试过 xampp php ext bz2 找不到指定的模块 xampp php ext php bz2 dll 找不到指定的模块 在未知的第 0 行

随机推荐

  • 如何创建Windows服务来运行powershell脚本?

    我有无限循环 PowerShell 测试目的 脚本 我想将其作为 Windows Server 2008 R2 标准 中的服务运行 我使用以下命令来创建 Windows 服务 sc exe create My PS1Service binP
  • C 中是否有一个函数与 Python 中的 raw_input 功能相同?

    有没有一个C函数可以做同样的事情raw input在Python中 in Python x raw input Message Here 我怎样才能用C写出这样的东西 Update 我做了这个 但出现错误 include
  • Laravel 5.1:将数据传递给 View Composer

    我在 Laravel 5 1 中使用视图编辑器 很好 但是如何将参数传递给视图编辑器 就我而言 我将周信息 上周 当前 下周 包括日期 发送到我的视图中 并使用 de viewcomposer 当前星期是可变的 不仅来自 url 还来自控制
  • 在活动模式中使用 typeof<_>

    给出以下人为的活动模式 let TypeDef typeDef Type value obj if obj ReferenceEquals value null then None else let typ value GetType if
  • 编写更短的代码/算法是否更高效(性能)?

    在网站上看到代码高尔夫琐事后 很明显 人们试图找到在字符 行和总大小方面尽可能短的代码和算法的编写方法 即使这意味着编写如下内容 Code by job Topic Code Golf Collatz Conjecture n input
  • 如何构建 iPhone Xcode 项目?

    建立组 文件夹的好方法是什么 我已经尝试通过功能 功能加模型等的用户界面 与一个共同的组 我也尝试过UI 模型等 前者将类似的东西放在一起 这非常适合 iPhone 范式 后者意味着我会跳得更多 你怎么认为 标准的 Xcode MVC 文件
  • Chrome 中增加 5MB 存储限制

    我们有一个用 html5 编写的 POS 应用程序 我们使用 localStorage 来存储订单和其他信息 我遇到了 chrome 提供的 5MB 的限制 它导致应用程序崩溃 有没有简单的方法来增加这个限制 thanks 检查这个link
  • 何时断开连接以及何时结束 pg 客户端或池

    我的堆栈是node express 和pg 模块 我真的尝试通过文档和一些过时的教程来理解 我不知道何时以及如何断开和结束客户端 对于某些路线 我决定使用游泳池 这是我的代码 const pool new pg Pool user pool
  • Jaxb,类有两个同名属性

    使用 Jaxb jaxb impl 2 1 12 UI 尝试读取XML 文件 http www copypastecode com 75029 XML 文件中只有少数元素是有趣的 因此我想跳过大部分元素 我正在尝试读取的 XML
  • 当另一个下拉列表中的值发生变化时加载一个下拉列表的存储

    我有 2 个下拉菜单 根据在一个下拉列表中选择的值 我需要使用 JSON 进行 AJAX 调用来检索值并在其他下拉列表中可用 这需要在 EXTJS 中完成 我尝试了以下代码 FUNCTION NAME Field on select fun
  • powershell 2.0 命令行重定向

    我正在寻找以下差异的解释 给出以下 powershell 脚本foo ps1 write host normal write error error write host yay 运行它 C gt powershell foo ps1 gt
  • 在 tkinter 中的函数内调用函数

    打电话时rest来自按钮的功能 然后start函数被调用并每秒继续打印值但是当我再次调用时rest函数start再次调用函数 但这次启动函数以 2 倍速度打印值 依此类推 但我不想以 2 倍速度打印值 我正在做一个小项目 我遇到了这类问题
  • 为什么 Spring Data MongoDB 1.5.2 会因 NoSuchMethodError 失败?

    我似乎无法使用 spring mongodb 初始化最基本的 MongoTemplate 以下是我的 POM 中的相关摘录
  • 如何将 SqLite 与 BlackBerry OS 4.5 一起使用?

    我目前在 BlackBerry 中使用持久存储 我想在 BlackBerry OS 4 5 中使用 SqLite 数据库 但我找不到任何相关教程 我可以在 BlackBerry OS 4 5 中使用 SqLite 还是需要其他版本的 Bla
  • Android 小部件的两个按钮以不同的意图调用相同的 Activity

    我在 Android 中有一个带有两个按钮的主屏幕小部件 两个按钮都应该调用相同的活动 类 只需使用不同的意图加上意图附加 即可知道哪个按钮调用了该类 目前只有 Button1 正在工作并调用该活动 我还在被调用的活动中收到键值 我怎样才能
  • 终端中的 LESS css 编译器帮助

    我使用 Ubuntu 13 04 Linux 我已经安装了node和npm 使用 npm 我通过终端下载的内容更少 我在我的简单 HTML CSS 项目中使用了它 纯前端 它不是 Ruby 或 Nodejs 项目 当我这样做时 lessc
  • Prolog 追加与剪切运算符

    当我们使用append和cut操作符时会出现什么问题 append2 L L append2 H T L H TL append2 T L TL 我尝试了几种不同的输入 但总是成功 append2 1 2 5 L L 1 2 5 appen
  • XPath 中字符串的连接函数

    我正在尝试使用 XPath 获取完整的地址 我是 XPath 新手 这是我到目前为止所做的 p class adr span class street address 2222 Warnar Ave span span class coun
  • FacebookDisplayName 有何用途?

    我们目前正在更改使用 Facebook SDK 进行登录的应用程序的名称 实际上没有其他任何操作 这意味着对于未更新的用户 Facebook 应用程序的名称将与FacebookDisplayName 在我的测试过程中 我找不到对价值的任何影
  • 将 Access-Control-Allow-Origin 添加到 PHP 标头

    我正在尝试解决 WebGL 应用程序上的 CORS 限制 我有一个可以解析 URL 并返回图像的 Web 服务 由于此 Web 服务未启用 CORS 因此我无法使用返回的图像作为纹理 我本来打算 编写 PHP 脚本来处理图像请求 图像请求将