簡體   English   中英

帶有 jersey 的 REST webservice 的 jQuery 客戶端

[英]jQuery client for REST webservice with jersey

我是 jQuery 新手,我正在嘗試為我的 Web 服務開發客戶端。 我嘗試了一些簡單的東西,只是為了測試,但它仍然不起作用,盡管對我來說似乎沒問題。

我的 tomee/webapp 文件夾中有 jQuery 庫,以及我的 html 和 javascript 文件。 如果我在我的 javascript 文件中編寫一些非 jQuery 代碼,它就可以工作。

我有以下代碼:

索引.html

<!DOCTYPE html SYSTEM "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title></title>
        <script type="text/javascript" src="jquery.js"></script>
        <script type="text/javascript" src="client.js"></script>
    </head>
    <body>
        <input type="button" id="getAllButton" value="Get all books" onclick="return getAllBooks()"/>
        <div id="messageBox"></div>
    </body>
</html>

客戶端.js

function getAllBooks() {
    $.ajax({
        dataType: 'application/xml',
        type: 'GET',
        url: rootURL + '/books',
        success: function (data) {
            alert(1);
        },
        error: function (data) {
            alert(2);
        }
    });
}

問題是不會出現警報。 如果編寫純 javascript(我的意思是沒有 jQuery),則會出現警報。

為什么不顯示警報? 有什么建議嗎?

謝謝!

索林

讓我們試着找出什么有效,什么無效; 嘗試將您的 client.js 更改為:

alert(1); 
function getAllBooks() {
    alert(2);
    window.open(rootURL + '/books'); 
    $.ajax({
        dataType: 'application/xml',
        type: 'GET',
        url: rootURL + '/books',
        success: function (data) {
            alert(3);
        },
        error: function (data) {
            alert(4);
        }
    });
}

如果您看到警報 #1(當您的 html 頁面加載時),那么您的 client.js 路徑就可以了。 如果您看到警報 #2(當您單擊按鈕時),那么至少正在調用該函數。

驗證 window.open() 是否顯示了您的 Web 服務應該向您顯示的內容(即使是錯誤消息也會引導您拋出正確的路徑)。 當然,如果您看到警報 #3 或 #4,那么您的問題就被它自己神秘地解決了......它有時會發生:-)

注意:如果您知道如何使用瀏覽器的 javascript 控制台,請使用 console.log() 而不是 alert() 進行調試;

感謝 charlietfl 的提示! 他們幫我解決了問題。

問題是它不知道 rootURL 是誰。 我在一個例子中找到了 rootURL,我認為這是在 jQuery 中定義的。 好像不是。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM