Retourne JSON à partir du servlet

C'est un très basique de demande de test de réponse. Navigateur envoie "bonjour à partir du navigateur" à la servlet à l'aide de jQuery $.API ajax, et servlet reçoit ce message, puis créer un objet JSON à l'aide de org.json.simple bibliothèque et renvoie au navigateur une réponse JSON avec le message "hello from server".

Je suis en cours d'exécution ce sur localhost et il suffit de supposer que mon adresse IP est 123.123.12.123, la plate-forme Ubuntu, serveur Tomcat 6.0, s'exécutant dans l'environnement de développement Eclipse.

Test 1. Je démarre le serveur à partir d'Eclipse, ouvrez Firefox, entrez http://localhost:8080/myproject/test.jspje peux voir servlet reçoit le message et le navigateur reçoit la réponse, test réussi.

Test 2. le serveur est toujours en cours d'exécution lors de l'Éclipse à Ubuntu, je démarre Windows 7 ordinateur invité de VirtualBox et le navigateur Firefox sous Windows 7, entrez http://123.123.12.123:8080/myproject/test.jspfonctionne comme je m'y attendais, test réussi.

Test 3. le serveur est toujours en cours à Eclipse sur Ubuntu, ouvrez Internet Explorer 9 le navigateur, lui donner l'adresse de http://123.123.12.123:8080/myproject/test.jsprien ne se passe.
Le debug me donne

Réponse HTTP/1.1 200 OK

Le corps de la réponse {"message":"bonjour du serveur"}

Le test.jsp est

<%@ page language="java" contentType="text/html; charset=UTF-8" 
pageEncoding="UTF-8"%> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
<title>Insérer le titre ici</title> 
</head> 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js" type="text/javascript"></script> 
<script type="text/javascript" src="release/js/libs/json2.js"></script> 
<script> 
$(document).ready(function(){ 
var request = ({"message": "Bonjour à partir du navigateur'}); 
var jsonobj=JSON.stringify(demande); 
$.ajax({ 
données: {para:jsonobj}, 
dataType: 'json', 
url: './TestServlet', 
type: 'POST', 
success: function(jsonObj){ 
alert(jsonObj.message); 
}, 
error: function() { 
alert('Ajax readyState: '+xhr.readyState+'\nstatus: '+xhr.+ '' + err); 
} 
}); 
}); 
</script> 
<body> 
</body> 
</html> 

Le code de la servlet est

importer java.io.IOException; 
importer java.io.PrintWriter; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServlet; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.json.simple.JSONObject; 
import org.json.simple.JSONValue; 

/** 
* Servlet mise en œuvre de la classe TestServlet 
*/
public class TestServlet extends HttpServlet { 
private static final long serialVersionUID = 1L; 

/** 
* @see HttpServlet#HttpServlet() 
*/
public TestServlet() { 
super(); 
} 

/** 
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response) 
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
//TODO Auto-généré méthode stub 
} 

/** 
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response) 
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

demande.setCharacterEncoding("utf8"); 
réponse.setCharacterEncoding("utf8"); 
réponse.setContentType("application/json"); 
PrintWriter out = response.getWriter(); 
JSONObject jsonObj = (JSONObject) JSONValue.parse(la demande.getParameter("para")); 
Système..println(jsonObj.get("message")); 
JSONObject obj = new JSONObject(); 
obj.put("message", "bonjour du serveur"); 
.print(obj); 

} 

} 

Mise à jour:

Après un examen plus approfondi par le changement

 error: function() { 
alert('Ajax readyState: '+xhr.readyState+'\nstatus: '+xhr.+ '' + err); 
} 

à

error: function(xhr,err) { 
alert('Ajax readyState: '+xhr.readyState+'\nstatus: '+xhr.+ '' + err); 
} 

J'ai eu d'alerte readyState:0 statut:0.
Mais je peux voir {"message":"bonjour du serveur"}, au corps de la Réponse et
l'en-tête de réponse est

Valeur De La Clé De 
Réponse HTTP/1.1 200 OK 

source d'informationauteur user200340