Javascript中的CORS实现

CORS implementation IN Javascript

本文关键字:实现 CORS 中的 Javascript      更新时间:2023-09-26

我想访问放置在其他服务器上的资源。我想从javascript访问它,我尝试实现CORS,通过以下教程在这里。但是不知道如何配置其他服务器的access - control - allow - origin头,所以浏览器仍然不允许访问。然后我尝试为chrome安装CORS扩展,它工作了,但chrome扩展的问题是,如果我从同一服务器访问任何资源,其中网页被提升,我得到这个错误:"access - control - allow - origin"标头包含多个值,但只允许一个。因此,不允许访问Origin _

如果chrome扩展跨域资源访问工作,但从同一域失败。我想通过代码实现CORS,而不是扩展。

有两种方法:

  1. 添加chrome扩展CORS到chrome,然后如果你尝试跨域XMLHTTPRequest,浏览器不会抱怨,它会加载跨域资源

  2. 如果您不需要扩展,其他方法是配置跨域服务器。下面是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
你需要node.js和npm。