Javascript CORS:PHP旁路不工作

Javascript CORS:PHP旁路不工作,javascript,php,canvas,xmlhttprequest,cors,Javascript,Php,Canvas,Xmlhttprequest,Cors,我正在开发一个Chrome扩展部分,其中一个函数使用canvas及其context.getImageData函数处理页面上的图像。就在那时,我遇到了CORS问题。我的理解是,为映像提供服务的服务器必须使用适当的CORS头来服务所述映像,以便跨域请求成功。我开始阅读这个(对我来说)新的和不熟悉的技术()。大量服务器不使用CORS,而处理每个图像对于我的扩展功能非常重要。我花了一整天的时间试图使用客户端脚本来避免这个问题,但得出的结论是,唯一的方法是将图像url发送到服务器,然后使用所需的CORS头

我正在开发一个Chrome扩展部分,其中一个函数使用
canvas
及其
context.getImageData
函数处理页面上的图像。就在那时,我遇到了
CORS
问题。我的理解是,为映像提供服务的服务器必须使用适当的
CORS
头来服务所述映像,以便跨域请求成功。我开始阅读这个(对我来说)新的和不熟悉的技术()。大量服务器不使用
CORS
,而处理每个图像对于我的扩展功能非常重要。我花了一整天的时间试图使用客户端脚本来避免这个问题,但得出的结论是,唯一的方法是将图像url发送到服务器,然后使用所需的
CORS
头(
访问控制允许源代码:
)将其返回。现在,在我开始解释我的实现之前,我想引用我之前链接的教程页面中的一段话

来自Chrome扩展的跨域

Chrome扩展以两种不同的方式支持跨域请求:

在manifest.json中包含域-如果域包含在manifest.json文件的“权限”部分,则Chrome扩展可以向任何域发出跨域请求:

“权限”:[“http://*.html5rocks.com”]

服务器不需要包含任何额外的CORS头,也不需要做更多的工作来使请求成功

这意味着
“权限”:

结论 我对这个解决方案的实现似乎应该能工作,但我真的不知道为什么不能。服务器正在发送
访问控制允许源代码
标题,图像数据良好,并且调用了回调函数。这是发布前唯一需要解决的问题。这是一个非常有趣的问题。我意识到了标题呃,我发送的并不是我唯一想要发送的,但它足以用于测试目的


我希望这个问题很清楚,足够详细,有人可以帮助我解决这个问题。请不要犹豫,询问更多信息和/或代码片段,因为为了保持简洁,我实际上没有包含任何代码。

如果您的图像src是数据uri(base64编码图像数据),则没有要设置访问控制的标头


只需将图像源设置为您在ajax中调用的url,然后将未编码的图像发回(
echo file\u get\u contents
)。

您似乎误解了我,我正在将图像url传递给服务器,它会发回数据,我相信这是另一种方式(您误解了我).Do
img.src=http://localhost/dim-service/?url=https%3Aetc“;
对不起,我的错。我修改了脚本,因此php只返回数据uri,我正在将img.src设置为响应,但它仍然给我错误信息。