欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法

发布时间:2023/11/27 68 豆豆
生活随笔 收集整理的这篇文章主要介绍了 Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

当使用jQuery Ajax post请求时可能会遇到类似这样的错误提示

XMLHttpRequest cannot load http://xxxxxx. Origin http://xxxxxx is not allowed by Access-Control-Allow-Origin.

这是Ajax跨域访问权限的问题,服务器端不接受来自另一个不同IP地址的由脚本文件发出的http请求。解决这个问题需要在服务器端进行配置使服务器端可以接受来自不同域的脚本文件的http请求。一个简单的解决方法是在服务器端配置Jetty Cross Origin Filter。

 

首先你需要下载jetty-servlets.jar。下载地址http://central.maven.org/maven2/org/eclipse/jetty/jetty-servlets/ 。然后将jetty-servlets.jar导入到WEB-INF/lib文件夹。最后在web.xml文件配置一些简单的参数就可以使服务器端允许跨域访问。一个典型的配置是这样的:

 1 <web-app>
 2 
 3     <filter>
 4 
 5         <filter-name>cross-origin</filter-name>
 6 
 7         <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
 8 
 9         <init-param>
10 
11             <param-name>allowedOrigins</param-name>
12 
13             <param-value>*</param-value>
14 
15         </init-param>
16 
17         <init-param>
18 
19             <param-name>allowedMethods</param-name>
20 
21             <param-value>GET,POST,OPTIONS,DELETE,PUT,HEAD</param-value>
22 
23         </init-param>
24 
25         <init-param>
26 
27             <param-name>allowCredentials</param-name>
28 
29             <param-value>true</param-value>
30 
31         </init-param>
32 
33         <init-param>
34 
35             <param-name>allowCredentials</param-name>
36 
37             <param-value>true</param-value>
38 
39         </init-param>
40 
41     </filter>
42 
43     <filter-mapping>
44 
45         <filter-name>cross-origin</filter-name>
46 
47         <url-pattern>/rest/*</url-pattern>
48 
49     </filter-mapping>
50 
51 </web-app>
Jetty Cross Origin配置方法

接下来解释参数的具体意义:

allowedOrigins: 允许跨域访问的域名或链接地址,多个地址用逗号分隔,默认值为"*", 表示接受来自所有域的访问请求。

allowedMethods: 可接受的http请求方法,多个方法用逗号分隔,默认为GET, PSOT, HEAD.

allowCredentials: 是否允许受信任的请求访问资源,默认为true。

 

有关其他详细配置可以参考官方文档:

http://www.eclipse.org/jetty/documentation/current/cross-origin-filter.html

 

转载于:https://www.cnblogs.com/llblog/p/4540957.html

总结

以上是生活随笔为你收集整理的Jetty Cross Origin Filter解决jQuery Ajax跨域访问的方法的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。