尝试使用休息服务 - jQuery - 无法正常工作

时间:2018-05-22 22:34:26

标签: jquery ajax rest

这是我第一次处理REST服务和Javascript,所以请原谅任何愚蠢的错误。

我使用Java(Netbeans)创建了一个REST服务,现在我尝试使用jQuery和AJAX在html页面上使用它。

我已在本地测试了REST服务(通过test-resbeans.html)并且可以确认当我输入ID为1时,我要查找的User对象以XML格式返回

<?xml version="1.0" encoding="UTF-8"?> 
   <user> 
       <type>student</type> 
       <userID>1</userID> 
       <username>Tom</username> 
   </user> 

这是我的单个html页面,它运行jQuery函数/ Ajax。

<!DOCTYPE html>
<!--
To change this license header, choose License Headers in Project Properties.
To change this template file, choose Tools | Templates
and open the template in the editor.
-->
<html>
    <head>
        <title>Web Services</title>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.0/css/bootstrap.min.css" integrity="sha384-9gVQ4dYFwwWSjIDZnLEWnxCjeSWFphJiwGPXr1jddIhOegiu1FwO5qRGvFXOdJZ4" crossorigin="anonymous">
        <script src="jquery-3.3.1.min.js"></script>
        <style>
            .table td {
                border-top: none;
            }
        </style>

    </head>
    <body>
        <div class="row" style="margin-top: 20px;">
            <div class="container">
                <h1>User Finder</h1>
                <div class="form-group" style="margin-top: 20px;">
                    <input type="text" class="form-control" id="id" placeholder="Enter ID" required>
                </div>
                <button id="searchbtn" type="submit" class="btn btn-primary">Search</button>
            </div>
        </div>
        <script src="jquery-3.3.1.min.js"></script>
        <script type="text/javascript">
            $('#searchbtn').click(function () {
                var requestData = $('#id').val();
                $.ajax('http://localhost:8080/RESTfulLITj/webresources/web.user/' + requestData,{
                    dataType: 'xml',
                    type: 'GET',
                    data: {},

                    success: function (data) {
                        alert("test alert")
                        var name = $(this).find('username').text();
                        alert(name);
                    }
                    failure: function (errorMsg){ alert("error") }
                    });
                });
        </script>
    </body>
</html>

“测试警报”甚至没有出现,所以我不确定发生了什么。再次,如果有一些公然不正确的事情,请道歉,这是我第一次编写JS并使用Web服务。

1 个答案:

答案 0 :(得分:-1)

CORS问题,在Chrome中添加了Access-Control-Allow-Origin插件。