Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/368.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
Javascript 通过将URL图像转换为二进制文件解决CORS问题_Javascript_Image_Cors_Blob - Fatal编程技术网

Javascript 通过将URL图像转换为二进制文件解决CORS问题

Javascript 通过将URL图像转换为二进制文件解决CORS问题,javascript,image,cors,blob,Javascript,Image,Cors,Blob,我从API中提取了一些数据,其中一个属性是图像url。所以我把这个网址贴在了网页上。但是,我不需要从url中获取图像,将其转换为二进制,这样我就可以将其发送到DB进行存储,以二进制形式而不仅仅是url 我尝试了两种方法,一种是使用FileReader转换为blob,另一种是写入并转换为blob。然而,对于这两种方法,URL中的图像主机都会拒绝CORS,因为请求不是来自同一个域,我理解这一点。我无法控制在另一台服务器上设置标题,但我确实需要将url图像转换为二进制文件。在我自己的服务器上不进行转换

我从API中提取了一些数据,其中一个属性是图像url。所以我把这个网址贴在了网页上。但是,我不需要从url中获取图像,将其转换为二进制,这样我就可以将其发送到DB进行存储,以二进制形式而不仅仅是url


我尝试了两种方法,一种是使用FileReader转换为blob,另一种是写入并转换为blob。然而,对于这两种方法,URL中的图像主机都会拒绝CORS,因为请求不是来自同一个域,我理解这一点。我无法控制在另一台服务器上设置标题,但我确实需要将url图像转换为二进制文件。在我自己的服务器上不进行转换就可以这样做吗?

您可以使用开放式反向代理,如

而不是将您的请求发送到https://example.com/blob-source 您可以将其发送到https://cors-anywhere.herokuapp.com/https://example.com/blob-源和响应将被发送回浏览器,并添加Access Control Allow Origin响应头和任何其他必要的CORS响应头


或者您可以从中获取源代码并运行自己的代理。

您可以使用开放式反向代理,如

而不是将您的请求发送到https://example.com/blob-source 您可以将其发送到https://cors-anywhere.herokuapp.com/https://example.com/blob-源和响应将被发送回浏览器,并添加Access Control Allow Origin响应头和任何其他必要的CORS响应头


或者您可以从中获取源代码并运行自己的代理。

这不是代码片段问题。我的代码没有问题。这更像是一种方法。但我不这么认为。这正是CORS的设计目的。请尝试在chrome浏览器中使用扩展名Allow Control Allow Origin运行应用程序,然后浏览器将通过CORS拒绝,但请注意,这可能会带来严重的安全问题。TL;DR-无法绕过CORS-您唯一的选择是使用自己的服务器将请求代理到远程服务器-您不必进行任何转换,但是,由于请求正在通过,因此在您的服务器上进行转换可能更有意义server@faizalvasaya可能有一些安全问题???不可能——这是一个可怕的扩展:通常不是代码片段问题。我的代码没有问题。这更像是一种方法。但我不这么认为。这正是CORS的设计目的。请尝试在chrome浏览器中使用扩展名Allow Control Allow Origin运行应用程序,然后浏览器将通过CORS拒绝,但请注意,这可能会带来严重的安全问题。TL;DR-无法绕过CORS-您唯一的选择是使用自己的服务器将请求代理到远程服务器-您不必进行任何转换,但是,由于请求正在通过,因此在您的服务器上进行转换可能更有意义server@faizalvasaya可能有一些安全问题???没有可能,这是一个可怕的延伸,建议:p