RESTFul webservices存在很大问题。
这是我的架构:
我在服务器端创建了一个JSP来测试我的webservice,然后再将其提交给客户端开发人员。当我使用这个JSP时,我的所有web服务都能正常运行!
然后我尝试从html页面(远程)访问这些web服务,我的$.ajax
请求不起作用。
我就此发了很多帖子,有些人谈到JSONP在网址末尾添加callback=?
或使用dataType='jsonp'
我能做的最好的事情就是在浏览器资源中查看对象,但只调用错误回调。
我有一个错误:ParserError : Error: jQuery18207595316471997648_1348928429983 was not called.
当我尝试使用dataType='text json'
时(如某些帖子中所述)没有任何反应,但仍会调用错误回调!
问题是,当我直接将GET url放在我的Web浏览器中时,我可以看到相应JSON对象的字符串,所以它似乎不是来自我的webservices。
以下是此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页面中?
我真的被困了,我真的需要你的帮助! :)
非常感谢您提前
答案 0 :(得分:1)
您可以尝试此功能:
function sendRequest(success_callback,failure_callback,data,ws_url,asynchronous){
$.ajax({
async: asynchronous,
type: "GET",
crossDomain: true,//if cross domain req
dataType: "json",
Accept : "application/json",
contentType: "application/json",
url:"url",
data: data,
success:success_callback,
error: failure_callback
});
}
function success_callback(msg){
}
function failure_callback(msg){
}