jQuery Rest服务调用无效

时间:2014-09-10 02:43:43

标签: jquery rest rest-client

我们有自己的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调用问题。

1 个答案:

答案 0 :(得分:0)

发生这种情况是因为您可能从不同的平台调用Web服务....这是一个交叉源,因此我们需要启用该功能

在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