-1

我是 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),则会出现警报。

为什么不显示警报?有什么建议吗?

谢谢!

索林

4

2 回答 2

0

让我们尝试找出哪些有效,哪些无效;尝试将您的 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() 进行调试;

于 2012-12-01T13:40:13.003 回答
0

感谢 charlietfl 的提示!他们帮我解决了问题。

问题是它不知道 rootURL 是谁。我在一个示例中找到了 rootURL,我认为这是在 jQuery 中定义的。似乎不是。

于 2012-12-01T13:52:13.530 回答