我对 RESTFul 网络服务有一个大问题。
这是我的架构:
- 服务器端:我使用 EJB3 + RESTFul 网络服务。
- 客户端:我使用 bootstrap twitter + JQuery 1.8 和 Ajax 方法来访问我的 web 服务。
我在服务器端创建了一个 JSP 来测试我的 web 服务,然后再将其提交给客户端开发人员。当我使用这个 JSP 时,我所有的 web 服务都运行良好!然后我尝试从 html 页面(远程)访问这些网络服务,但我的$.ajax
请求不起作用。
我写了很多关于这个的帖子,有些人谈到callback=?
在 URL 末尾添加 JSONP 或使用dataType='jsonp'
我能做的最好的事情是在我的浏览器资源中看到该对象,但只调用错误回调。我有一个错误,例如:ParserError : Error: jQuery18207595316471997648_1348928429983 was not called.
当我尝试使用dataType='text json'
(如某些帖子中所述)时,没有任何反应,但仍然调用错误回调!
问题是,当我将 GET url 直接放在我的网络浏览器中时,我可以看到相应 JSON 对象的字符串,所以它似乎不是来自我的网络服务。
这是此 JSON 字符串的示例:
{"member1":[{"email":"romain@gmail.com","firstname":"Romain","idMember":"4","lastname":"Dev","login":"romain","password":"5026bc63b5418ffdb54f238db245ec01"},{"email":"productowner@gmail.com","firstname":"Product","idMember":"7","lastname":"Owner","login":"prodowner","password":"f5bf48aa40cad7891eb709fcf1fde128"}]}
这是我的 ajax 请求的示例:
$.ajax({
url:'http://localhost:8080/myresource/all',
type:'GET',
success: function(reponse) {
renderList(reponse);
},
error:function (xhr, status, error){
alert('Error :'+xhr.responseText+' ('+status+' - '+error+')');
},
dataType: 'json'
});
我使用 Glassfish 服务器 3.1.2,我能看到的唯一日志是:
INFO: Couldn't find JAX-B element for class javax.ws.rs.core.Response
但是为什么它会在我的 JSP 中而不是在我的 HTML 页面中工作?
我真的被困住了,我真的需要你的帮助!:)
非常感谢您提前