Ajax 跨域请求 配置解决方法 tomcat weblogic适用
概述 Ajax跨域是前端开发中常见的问题,本文描述了以Google浏览器Chrome作为客户端和以Tomcat作为Web服务器的情况下的解决办法。 问题现象 当出现跨域访问的时候ajax通常会报类似如下错误: XMLHttpRequest cannot loadhttp://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)GoogleChromeApplicationchrome.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> 2.在项目中或容器中添加以下jar包 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- c – 在控制结构块中定义变量
- Swift - 使用UIWebView和UIToolbar制作一个浏览器
- $.ajax({ url:"getCounterOfShop.action", type
- c# – 无法获得在VS2010中使用IISOle对象的引用
- c# – SignalR:使用moq框架模拟IHub并测试他的方法
- ruby-on-rails – 在erb模板中嵌入ejs模板
- oracle – 在JPA连接中设置上下文 – 这样安全吗?
- c# – NegotiateStream拒绝非本地管理员的客户端
- 在C程序中为同一个指针调用“自由”两次是否有任何伤害?
- MatchDroid--类正则表达式匹配自动机,更好效率与中文支持