【问题标题】:Cors doesnt work in Wamp or ApacheCors 在 Wamp 或 Apache 中不起作用
【发布时间】:2016-09-10 11:21:16
【问题描述】:

我花了 2 天的时间在我的项目中使用 .htaccess 或 web.xml 中的过滤器启用 CORS。但没有办法不适合我。 我在谷歌搜索并在 stackOverFlow 中完成所有建议,但是:(

我有两个不同的 ip,我想通过 ajax 调用将请求从一个发送到另一个。 但由于 CORS 我不能。 (错误:访问属性 Document 的权限被拒绝)。

将以下内容添加到 .htaccess 文件并使用 curl 进行测试,它已正确添加到标题中:

Header add Access-Control-Allow-Origin "*"
Header add Access-Control-Allow-Headers "Content-Type,X-Requested-    With,accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers"
Header add Access-Control-Allow-Methods "PUT, GET, POST,HEAD, DELETE, OPTIONS"
Header add Access-Control-Max-Age "1" 

【问题讨论】:

  • 服务器是Apache Tomcat还是Apache httpd?
  • 我通过 apache httpd 测试它并在 windows @hjpotter92 中测试它

标签: ajax apache tomcat cors


【解决方案1】:

您是否在 Javascript AJAX 调用中设置了 CORS? var xhr = new XMLHttpRequest();

  if ("withCredentials" in xhr) //safari, chrome, firefox..
  {
        xhr.open(method, url, true);
  } 
  else if (typeof XDomainRequest != "undefined") //internet explorer
  {
        xhr = new XDomainRequest();
        xhr.open(method, url);
  } 
  else //chors unsupported
  {
        xhr = null;
  }

您可以尝试在 PHP 中设置 cors,而不是使用 .htaccess simple

header("Access-Control-Allow-Origin: *");

【讨论】:

  • 感谢@Raiper34 的回复。我的程序是用 extjs 编写的。在java中,当我使用过滤器公共类CORSFilter扩展了OncePerRequestFiltert ....它工作正常。但在 Extjs 中它不起作用。
【解决方案2】:

我终于找到了解决问题的方法。 我在 Apache http.conf 文件中使用 proxyPass 对 CORS 进行舍入。 所以我在本地配置 apache 并将请求转发到远程服务器。因此不会产生 CORS。

【讨论】:

    猜你喜欢
    • 2012-12-17
    • 2011-11-24
    • 1970-01-01
    • 1970-01-01
    • 2015-12-12
    • 2013-04-26
    • 1970-01-01
    • 2016-06-04
    • 2015-07-05
    相关资源
    最近更新 更多