java - jetty 跨源过滤器

标签 java ajax cross-domain jetty cors

我已经配置了 Jetty 的跨域过滤器,但我仍然收到以下错误。有谁知道出了什么问题以及如何解决?错误消息下方是我的覆盖描述符(即补充 web.xml)

错误:

Origin http://localhost:8090 is not allowed by Access-Control-Allow-Origin.

覆盖描述符:

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
 <filter>
   <filter-name>cross-origin</filter-name>
   <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
   <init-param>
       <param-name>allowedOrigins</param-name>
       <param-value>*</param-value>
   </init-param>
   <init-param>
       <param-name>allowedMethods</param-name>
       <param-value>*</param-value>
   </init-param>
   <init-param>
       <param-name>allowedHeaders</param-name>
       <param-value>*</param-value>
   </init-param>
 </filter>
 <filter-mapping>
     <filter-name>cross-origin</filter-name>
     <filter-pattern>/*</filter-pattern>
 </filter-mapping>
</web-app>

请求 header

Accept:*/*
Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Access-Control-Request-Headers:Origin, Content-Type, Accept
Access-Control-Request-Method:POST
Connection:keep-alive
Host:localhost:8080
Origin:http://localhost:8090
Referer:http://localhost:8090/home
User-Agent:Mozilla/5.0 (X11; Linux i686) AppleWebKit/535.8 (KHTML, like Gecko) Chrome/17.0.942.0

响应 header

Allow:POST,GET,OPTIONS,HEAD
Content-Length:0
Date:Wed, 30 Nov 2011 02:13:21 GMT
Server:Jetty(7.5.4.v20111024)

最佳答案

阿罗哈,

我也为此奋斗了一段时间,发现最终节点需要是:

<filter-mapping>
    <filter-name>cross-origin</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

不是

<filter-mapping>
     <filter-name>cross-origin</filter-name>
     <filter-pattern>/*</filter-pattern>
</filter-mapping>

这是我找到的对我有帮助的链接:wiki.eclipse.org/Jetty/Feature/Cross_Origin_Filter

在我更新了 web.xml 文件并重新启动了 jetty 服务器后,我能够使用 jQuery ajax 调用进行跨域请求。

罗伯

关于java - jetty 跨源过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8303162/

相关文章:

javascript - 从 JavaScript 的 API 加载 JSON 数据

java - Java 中的 URL 单元测试

java - 使用 JNA-Ptrace 在 Linux 中获取有关外部进程的信息?

java - 如何告诉 Spring 在不提供构造函数参数的情况下实例化选定的 bean?

Java native 接口(interface) - C++ 不等待 java 函数完成

javascript - JQuery 追加 AJAX

php - PHP/Ajax匿名函数,迭代会导致错误? +如何在使用Ajax时显示标准PHP错误

javascript - 实现通用的ajax方法

javascript - 如何获取在不同源域的 iframe 中嵌入另一个页面的网页的 url

javascript - 如何在 Webextension 中以正确的权限运行跨域 XHR 请求?