jquery - 如何在 jBoss 中启用 CORS

标签 jquery html web-services soap jboss

我正在开发一个 HTML5 应用程序,它必须从旧版 Web 服务 (Jax-Ws) 中获取一些值,因此我使用 jQuery.soap查询这些 Web 服务以获得响应。我已经用 SOAP UI 尝试了我的请求的正确性,并且它们工作正常。

从我的 HTML5 客户端,我无法从服务器接收 SOAP 响应,因为响应中没有将 Allow-Control-Allow-Origin header 设置为 *。因此,请求的来源被识别为不允许,并且服务器的响应是错误响应。

使用 Firebug + Firefox 调试我的 HTML5 项目时的错误消息是:

锁定的跨源请求:源处的标准不允许读取远程资源。您可以通过将资源移动到同一个域或激活CORS来解决问题。

如何在 jBoss 中启用 CORS?

最佳答案

您需要处理旧的网络服务来解决该问题。正如 mcannf 上面所说,您需要在 web.xml 中添加 CORS 过滤器。

您可以使用交易公司的解决方案:

web.xml:

<filter>
    <filter-name>CORS</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>

<filter-mapping>
    <filter-name>CORS</filter-name>
    <url-pattern>*</url-pattern>
</filter-mapping>

行家:

<dependency>
    <groupId>com.thetransactioncompany</groupId>
    <artifactId>cors-filter</artifactId>
    <version>2.5</version>
</dependency>

如果您使用 apache Tomcat,您可以使用内置的 CorsFilter:

web.xml:

<filter>
  <filter-name>CorsFilter</filter-name>
  <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
</filter>

<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

pom.xml:

<dependency>
    <groupId>org.apache.tomcat</groupId>
    <artifactId>tomcat-catalina</artifactId>
    <version>7.0.42</version>
    <scope>provided</scope>
</dependency>

关于jquery - 如何在 jBoss 中启用 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26610657/

相关文章:

javascript - HR标签可以用javascript创建吗

javascript - 如何进行 jQuery 验证以仅允许表单中包含英文和日文字符

asp.net - 以漂亮的布局显示记录

html - 960 网格与底部的 wordpress IE 7/8 侧边栏冲突

html - 如何在订单列表中对齐 div 和关于 <ul> 边框样式

web-services - 如何调试 ssl 连接?

jQuery 没有根据 ID 选择器获取元素

javascript - 我试图在悬停时显示 block 图像,但就是无法获取;使用 css3 和 Html

java - 服务架构- webservies | SOAP

web-services - 如何使用 UFT 通过一个脚本测试多个 Web 服务?