我想访问放置在其他服务器上的资源。我想从javascript访问它,我尝试实现CORS,通过以下教程在这里。但是不知道如何配置其他服务器的access - control - allow - origin头,所以浏览器仍然不允许访问。然后我尝试为chrome安装CORS扩展,它工作了,但chrome扩展的问题是,如果我从同一服务器访问任何资源,其中网页被提升,我得到这个错误:"access - control - allow - origin"标头包含多个值,但只允许一个。因此,不允许访问Origin _。
如果chrome扩展跨域资源访问工作,但从同一域失败。我想通过代码实现CORS,而不是扩展。
有两种方法:
-
添加chrome扩展CORS到chrome,然后如果你尝试跨域XMLHTTPRequest,浏览器不会抱怨,它会加载跨域资源
-
如果您不需要扩展,其他方法是配置跨域服务器。下面是wamp服务器
的流程- 打开apache/conf/httpd.conf文件,取消下面一行的注释:
LoadModule headers_module modules/mod_headers.so
在"Directory"标签下添加以下行
<IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>
如果你想允许所有服务器的跨域访问,请使用*,否则请明确给出服务器的名称。现在保存httpd.conf文件并重启wamp服务器。
除了@Bhupendra提到的两个选项外,您还可以运行代理。代理在浏览器和实际的服务器之间运行,并动态地添加标题。对于开发,这是一个完美的解决方案。
我用过的两个node项目:
- https://github.com/Rob--W/cors-anywhere
- https://github.com/gr2m/CORS-Proxy