在Javascript中的CORS实现

时间:2014-07-11 05:34:50

标签: javascript cors

我想访问放在另一台服务器上的资源。我想通过javascript访问它,我尝试按照教程here实现CORS。但是没有得到如何使用Access-Control-Allow-Origin标头配置其他服务器,所以仍然没有浏览器允许访问。然后我尝试为chrome安装CORS扩展,它有效,但chrome扩展的问题是,如果我从同一服务器访问任何资源,网页被挂起,我会收到此错误:'Access-Control-Allow- Origin'标头包含多个值,但只允许一个。原因 _ 因此不允许访问。

如果是chrome扩展,跨域资源访问可以正常工作,但是来自同一个域的操作失败。 我想通过代码实现CORS,而不是扩展。

2 个答案:

答案 0 :(得分:1)

有两种方法可以做到:

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

  2. 如果你不想扩展,其他方法是配置跨域服务器。下面是wamp服务器的进程

    • 打开文件apache / conf / httpd.conf并取消注释以下行:
      

    LoadModule headers_module modules / mod_headers.so

    • 在"目录"下添加以下行。标签

      <IfModule mod_headers.c> Header set Access-Control-Allow-Origin "*" </IfModule>

    如果要允许来自所有服务器的跨域,请使用*其他显式提供服务器名称。 现在保存httpd.conf文件并重新启动wamp服务器。

答案 1 :(得分:0)

除了@Bhupendra提到的两个操作之外,您还可以运行代理。代理服务器位于浏览器和实际服务器之间,并动态添加标头。对于开发来说,这是一个非常好的解决方案。

我使用过的两个节点项目:

两者都需要node.js和npm。