Liferay 6.06 Web服务的跨域请求



我已经能够使用此URL和正确的身份验证从Liferay Web服务访问json数据:

http://login:password@localhost:8080/tunnel-web/secure/json

但是我需要在另一个域名的javascript中询问这个问题。

我遇到了经典错误:

No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://my.origin.com/' is therefore not allowed access.

我知道我必须在服务器响应标头上允许此源,这可以像这样在 jsp 中完成:

response.setHeader("Access-Control-Allow-Origin", "http://my.origin.com");

问题是,我怎样才能允许这个来源用于Liferay的默认网络服务?

编辑:

我尝试添加一个带有以下内容的门户扩展属性文件:

    axis.servlet.hosts.allowed=
    axis.servlet.https.required=false
    tunnel.servlet.hosts.allowed=
    tunnel.servlet.https.required=false
//empty values are meant to allow any IP...

但它不会改变任何东西:(

PS : 我正在使用生命射线 6.06

如果你想

改变Tomcat,你必须改变liferay web.xml要启用Cors Filter,请关注这篇文章:

访问控制允许原点:* 在 tomcat 中

但对我来说,最好的方法是使用代理通行证模块在tomcat/liferay前面有一个Apache Web服务器(httpd)。Apache 服务器作为 tomcat 的反向代理运行。

在代理传递规则中,您可以设置 apache 以使用一些额外的标头填充响应。

参考这个大帖子:

如何使用 Apache 正确配置反向代理,以用于跨域 AJAX?

相关内容

  • 没有找到相关文章

最新更新