主页 > 知识库 > 有关Ajax跨域问题的两种解决方法

有关Ajax跨域问题的两种解决方法

热门标签:老虎邮局地图标注点 目标三维地图标注 青海医疗智能外呼系统怎么样 科智联智能电销机器人 上海浦东百度地图标注中心注册 徐州电销卡外呼系统供应商 外呼系统获取客户手机号 百灵鸟 襄阳外呼系统接口

概述

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为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]。

以上两种方法均能解决ajax跨域问题,希望本文分享对大家有所帮助。

您可能感兴趣的文章:
  • AJAX的跨域访问-两种有效的解决方法介绍
  • jquery ajax跨域解决方法(json方式)
  • ajax跨域请求js拒绝访问的解决方法
  • IE9版本以下ajax 跨域问题可行解决方法

标签:荆州 佛山 商洛 股票 红河 辛集 揭阳 咸宁

巨人网络通讯声明:本文标题《有关Ajax跨域问题的两种解决方法》,本文关键词  有关,Ajax,跨域,问,题的,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《有关Ajax跨域问题的两种解决方法》相关的同类信息!
  • 本页收集关于有关Ajax跨域问题的两种解决方法的相关信息资讯供网民参考!
  • 推荐文章