这是我第一次处理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服务。
答案 0 :(得分:-1)
CORS问题,在Chrome中添加了Access-Control-Allow-Origin插件。