通过ajax访问Tomcat服务器web service接口时出现No 'Access-Control-Allow-Origin' header问题的解决办法

问题描述

通过ajax访问Web服务器(Tomcat7.0.42)中的json web service接口的时候,报以下跨域问题:

XMLHttpRequest cannot load http://localhost:8080/get-employees-by-name/name/admin. No ‘Access-Control-Allow-Origin‘ header is present on the requested resource. Origin ‘http://localhost:63342‘ is therefore not allowed access.

解决办法

1、下载cors-filter-<version>.jar和java-property-utils-<version>.jar两个jar文件,并将其放在web服务器的classpath路径下,例如tomcat的lib。

cors-filter-2.4.jar java-property-utils-1.9.1.jar

2、在web.xml中添加CorsFilter过滤器

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
</filter>
<filter-mapping>
      <filter-name>CorsFilter</filter-name>
      <url-pattern>/*</url-pattern>
</filter-mapping>
<filter>

3、重启Web服务器即可。

参考资料

1、http://stackoverflow.com/questions/17267023/tomcat-7-cors-filter

2、http://software.dzhuvinov.com/cors-filter-installation.html

通过ajax访问Tomcat服务器web service接口时出现No 'Access-Control-Allow-Origin' header问题的解决办法

时间: 2024-12-15 01:37:29

通过ajax访问Tomcat服务器web service接口时出现No 'Access-Control-Allow-Origin' header问题的解决办法的相关文章

Linux下安装MyEclipse和Tomcat服务器详解,以及我安装过程中所出现的问题以及解决办法,并实现一个web小程序

1.首先,先要去MyEclipse和Tomcat的官网去下载Linux版的压缩文件,而MyEclipse的中文官网是需要登录并有可能要付钱,大家可以去网上下载,还有就是Tomcat的linux版,这个直接上官网就可以下载了,下载后我还是通通把它们放在我E盘下的as目录底下,如果大家还没配置好jdk,即Java环境的话,可看我这篇文章:http://blog.csdn.net/u012561176/article/details/45119047 这里我就直接进行操作了! 我E盘下的as文件夹

调用微信退款接口或发红包接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法

我总结了一下出现证书无法加载的原因有以下三个 1.证书密码不正确,微信证书密码就是商户号 解决办法:请检查证书密码是不是和商户号一致 2.IIS设置错误,未加载用户配置文件 解决办法:找到网站使用的应用程序池-->右击-->高级设置-->打开如下图-->在加载用户配置文件选择true 3.如果以上两个方案都不能解决问题,就有可能是加载证书时没有给定证书存储标识 解决方法:在加载证书方法时使用以下方法,请注意第三个参数 X509Certificate2 cer = new X509C

调用微信退款接口时出现System.Security.Cryptography.CryptographicException: 出现了内部错误 解决办法

我总结了一下出现证书无法加载的原因有以下三个 1.证书密码不正确,微信证书密码就是商户号 解决办法:请检查证书密码是不是和商户号一致 2.IIS设置错误,未加载用户配置文件 解决办法:找到网站使用的应用程序池-->右击-->高级设置-->打开如下图-->在加载用户配置文件选择true 3.如果以上两个方案都不能解决问题,就有可能是加载证书时没有给定证书存储标识 解决方法:在加载证书方法时使用以下方法,请注意第三个参数 X509Certificate2 cer = new X509C

php curl 访问web service接口

利用curl访问web service接口代码如下: $apiUrl = 'http://test.com/test'; $accessToken = '123456789'; $header = ['Authorization: ' . $accessToken,'Content-Type:application/json']; $post = ['sku'=>[]]; $jsonPost = json_encode($post); $ch = curl_init(); curl_setopt

Axis实现 web service接口开发 + 客户端调用

看到网上挺多人找webservice axis开发案例,但是网上较多的都是有点乱,初学者不太容易看得懂,所以最近看到自己终于有了点空闲时间,就上传了一份比较简单的webservice axis的完整案例. 只适用于初学者. 一.新建一个web项目 导入lib包. 2.配置 web.xml <!-- axis 配置 -->   <servlet>         <display-name>Apache-Axis Servlet</display-name>

Axis2实现 web service接口开发 + 客户端调用

一. 新建一个web项目, 1.打开axis2.war包,将conf,lib,modules三个文件夹复制到项目的WEB-INF文件夹下,再在WEB-INF目录下新建一个services文件夹,然后在services文件下新建一个文件夹(任意取名): 再新建META-INF文件夹,最后再新增services.xml,接口信息就写在这里面. 具体路径:WEB-INF/services/myservice/META-INF/services.xml 2.配置 web.xml .加载axis2 和 a

Web Service (四) 手动发布Web Service接口-CXF与Spring集成

当我们发布完Web Service接口之后有两种方式可以调用Web service服务,一种是通过动态客户端方式,另一种是引用服务端的接口,引用服务端接口的方式对于客户端同服务器端耦合比较大,而使用WSDL的方式客户端不知道服务端的存在就可以调用服务器的方法. 下面是项目的结构图: 1.Web Service发布项目 2.编写服务端接口类以及实现类,如下,同上一篇自动发布接口,多了一个注解@WebService package com.test.webservice; import javax.

java中调用kettle作业以及生成web service 接口

第一步:(前提将kett中lib下的所有jar包拷贝到java项目lib目录)创建并连接资源库,如果只用这一个工作空间,可以将此段代码放入静态代码块,代码如下: KettleEnvironment.init(); //创建资源库对象,此时的对象还是一个空对象 KettleDatabaseRepository repository = new KettleDatabaseRepository(); //创建资源库数据库对象,类似我们在spoon里面创建资源库 //(数据库连接名称,数据库类型,连接

Web Service接口开发流程(转)

1.  设计数据库物理结构(可能体现为TABLE). 2.  设计数据库的逻辑结构(可能为VIEW OR PROCEDURE). 3.  对VIEW OR PROCEDURE 等数据库对象进行授权. 4.  对数据库对象授权文档收集.(保证以后移动数据库时快速对数据库用户进行授权) 5.  设计业务类库. 6.  把业务类库函数的文档写到接口系统数据库以存档.(由系统自动生成函数的唯一ID号) 7.  根据函数的唯一ID号设计封装成Web Service接口. 8.  把接口系统数据库已存档的文