2012-09-29 28 views
0

使用Java Web服務REST我有基於REST的Web服務的一個大問題。在HTML頁面中使用jQuery

這裏是我的架構:

  • 服務器端:我用EJB3 + REST風格的web服務。
  • 客戶端:我使用Twitter的引導JQuery的+ 1.8和Ajax方法來訪問我的web服務。

我在服務器端創建了一個JSP,在提交給客戶端開發人員之前測試我的webservice。當我使用這個JSP時,我的所有Web服務都可以正常工作! 後來我嘗試從一個HTML頁面(遠程)和我$.ajax請求不起作用訪問這些Web服務。

我騎了很多有關的帖子,有人談到JSONP在URL的末尾添加callback=?或使用dataType='jsonp'

我能做的就是看到在我的瀏覽器資源的目標,僅僅是錯誤回調最好叫做。 我有一個錯誤,如:ParserError : Error: jQuery18207595316471997648_1348928429983 was not called.

當我嘗試使用dataType='text json'(如在某些帖子中提到)沒有任何反應,但仍然調用錯誤回調!

的事情是,當我只是把GET網址,直接在網頁瀏覽器,我可以看到相應的JSON對象的字符串,因此它不會似乎來自我的web服務。

這裏是這個JSON字符串的例子:

{"member1":[{"email":"[email protected]","firstname":"Romain","idMember":"4","lastname":"Dev","login":"romain","password":"5026bc63b5418ffdb54f238db245ec01"},{"email":"[email protected]","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

沒有人可以幫助我嗎? – Cyril

回答

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){ 

}