Ajax 跨域请求 配置解决方法 tomcat weblogic适用

本文详细介绍了在Ajax跨域访问时遇到的问题及其解决方法,特别是针对Chrome浏览器和Tomcat服务器的配置。包括临时关闭浏览器安全设置进行测试以及在web.xml中配置CORSFilter来允许跨域请求,同时也适用于WebLogic服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

概述

Ajax跨域是前端开发中常见的问题,本文描述了以Google浏览器Chrome作为客户端和以Tomcat作为Web服务器的情况下的解决办法。

问题现象

当出现跨域访问的时候ajax通常会报类似如下错误:

XMLHttpRequest cannot load http://192.168.2.12:8001/oss/api/version/check. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://localhost:8000' is therefore not allowed access.


解决办法一:关闭浏览器的跨域安全设置,仅限于开发的时候测试用

以chrome浏览器为例,右键点击chrome的快捷方式,然后在Target的值后面追加 --disable-web-security,注意--前面有个空格。例如:

"C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" --disable-web-security

启动之后,Chrome浏览器会提示您"您使用的是不受支持的命令行标记:--disable-web-security",说不安全,因此仅限于测试。

这样就可以直接测试,不会出现跨域的错误了!

解决办法二:配置Web服务器支持跨域访问 (支持tomcat)

这里描述以Tomcat为Web服务器情况下的解决办法,在Java Web程序的WEB-INF下的web.xml文件中加入如下配置即可。

<!--cors filter-->
   <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>

注意:org.apache.catalina.filters.CorsFilter下面有好几个配置的选项,上面没有配置时就采用系统的默认配置。在实际生产环境要根据需要进行配置来提高安全性。比如cors.allowed.origins配置允许访问的源地址,默认为所有,即*。此外,还有cors.allowed.methods,cors.allowed.headers等等。具体的配置细节请参见本文参考资料中的[1]。

解决办法三:配置Web服务器支持跨域访问(支持weblogic/tomcat)

1.在Java Web程序的WEB-INF下的web.xml文件中加入如下配置

<filter>   
     <filter-name> CORS </filter-name>   
     <filter-class> com.thetransactioncompany.cors.CORSFilter </filter-class>   
    <init-param>   
                                 <param-name> cors.allowOrigin </param-name>   <!--配置授信的白名单的域名!-->
         <param-value> * </param-value>   
     </init-param>   
     <init-param>   
      <param-name> cors.supportedMethods </param-name>   
         <param-value> GET, POST, HEAD, PUT, DELETE </param-value>   
     </init-param>   
     <init-param>   
      <param-name> cors.supportedHeaders </param-name>   
         <param-value> Accept, Origin, X-Requested-With, Content-Type, Last-Modified </param-value>   
     </init-param>   
     <init-param>   
         <param-name> cors.exposedHeaders </param-name>   
         <param-value> Set-Cookie </param-value>   
     </init-param>   
     <init-param>   
         <param-name> cors.supportsCredentials </param-name>   
         <param-value> true </param-value>   
     </init-param>   
</filter>   
<filter-mapping>   
     <filter-name> CORS </filter-name>   
     <url-pattern> /* </url-pattern>   
</filter-mapping>

2.在项目中或容器中添加以下jar包 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值