JavaScript kullanarak bir dinlenme sunucusundan bir Json yanıtı ayrıştırmak ve verileri görüntülemek çalışıyorum. Geri kalan sunucu, verileri ayrıştırılamayacak kadar iyi çalışıyor. Düzinelerce örneğe baktım ve anlayışımdan, kod iyi görünüyor. Bu, Ajax'ı öğrenme konusunda ilk denememdir ve eğer bunu düzeltirsem projeme devam edebilirim. Dinlenme sunucusundan Json yanıtı mümkün değil
Bu
yanıt{"id":"1","author":"Bill Burke","title":"RESTful Java with JAX-RS","year":"2009"}
Bu, istemci
<!DOCTYPE html>
<html>
<head>
<title>Form to create a new resource</title>
<script type="text/javascript">
function getHTTPObject() {
var xhr = false;
if (window.XMLHttpRequest) {
xhr = new XMLHttpRequest();
} else if (window.ActiveXObject) {
try {
xhr = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
xhr = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {
xhr = false;
}
}
}
return xhr;
}
function grabFile(file) {
var request = getHTTPObject();
if (request) {
request.onreadystatechange = function() {
parseJ(request);
};
request.open("GET", file, true);
request.send(null);
}
}
function parseJ(request) {
if (request.readyState == 4) {
if (request.status == 200 || request.status == 304) {
var obj = JSON.parse(request.responseText);
document.getElementById("details").innerHTML = obj.id + " " + obj.author + " "
+ obj.title + " " + obj.year;
}
}
}
</script>
</head>
<body>
<a
href="http://localhost:8080/Distributed_REST_booksServer/rest/books/1"
onclick="grabFile(this.href); return false;">Book 1</a>
<br>
<div id="details"></div>
</body>
</html>
olan
@Path("/books") // JAX-RS annotation
public class BookResource {
@GET // JAX-RS annotation
@Produces({ MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML })
@Path("/{bookId}")
public Book getBook(@PathParam("bookId") String id) {
return BookDao.instance.getBook(Integer.parseInt(id));
}
}
sunucu 210
Sunucunuz bir hata veriyor. Ya da en azından HTML, çünkü ilk char '<'. Deneme: 'try {var obj = JSON.parse (request.responseText); catch (e) {console.log (e, 'açık', request.responseText); Doğrulamak, lütfen ve sonuçları yayınlamak için – henry700
Yeni bir ekran görüntüsü ekledim @ henry700 – Johnny24
Sunucunuz XML döndürüyor, JSON değil! Sunucuyu uygun şekilde yapılandırın ya da bunun yerine Javascript'inizle XML'yi ayrıştırın. XML'in ayrıştırılması için bir kütüphaneye ihtiyacınız var ... Sadece @Produces ({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON, MediaType.TEXT_XML}) 'deki JSON seçeneğini bırakmayı denediniz mi? – henry700