我们有自己的Rest Webservices返回JSON,我们可以从浏览器和基于浏览器的休息客户端使用(GET)数据。
我们创建了一个基于JQuery(嵌入在html中)的rest客户端,它甚至无法使用浏览器使用相同的信息来访问web服务。以下是代码段。仅在“错误”下提醒调用状态0和statusText为空。
$.ajax({
url: 'http://localhost:8080/appcontext/user/1234',
type: 'GET',
dataType: 'json',
success: function(data) {
alert('GET completed');
},
error: function(data) {
alert('GET failed STATUS ' + data.status );
alert('GET failed TEXT ' + data.statusText);
}
});
如果我将dataType更改为jsonp,那么至少会调用webservices,但会再次转到“错误”状态。状态200和statuText加载。
请帮助问题在哪里。看起来在webservices方面没有问题,因为我们可以使用其他方式使用,如java代码,浏览器等.JQuery调用问题。
答案 0 :(得分:0)
在web.xml中添加以下内容
<filter>
<filter-name>cross-origin</filter-name>
<filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>cross-origin</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
并添加相应的jar文件:jetty-all