Bonjour à tous,

Je viens vers vous car j'ai esseyer de rechercher une solution à mon problème mais je n'ai pas trouvé.

Je souhaite réaliser un server python permettant de générer un XML. Ca ca fonctionne.

Je souhaite maintenant pouvoir récuperer le xml à partir d'une page web à l'aide de la technologie Ajax. Ca coince à cause de cette erreur:

XMLHttpRequest cannot load http://127.0.0.1:8888/index.py. No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'null' is therefore not allowed access.

Voici mon code:
Server.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
#!/usr/bin/python3
 
import http.server
 
PORT = 8888
server_address = ("", PORT)
 
server = http.server.HTTPServer
handler = http.server.CGIHTTPRequestHandler
handler.cgi_directories = ["/"]
print("Serveur actif sur le port :", PORT)
 
 
httpd = server(server_address, handler)
httpd.serve_forever()
Mon index.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
#!/usr/bin/python3
# -*- coding: utf-8 -*
 
import cgi 
 
form = cgi.FieldStorage()
print("Content-type: text/xml; charset=utf-8\n ;Access-Control-Allow-Origin: *;\
Access-Control-Expose-Headers:Access-Control-Allow-Origin")
 
html = """
<ItemParent>
  <Item1>5</Item1>
  <Item2>12</Item2>
  <Item3>0</Item3>
 </ItemParent>
"""
print(html)
Et voici ma requête ajax:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 
function ajax()
{
	var xhr=null;
 
	if (window.XMLHttpRequest) { 
		xhr = new XMLHttpRequest();
	}
	else if (window.ActiveXObject) 
	{
		xhr = new ActiveXObject("Microsoft.XMLHTTP");
	}
    //on définit l'appel de la fonction au retour serveur
    xhr.onreadystatechange = function() { alert_ajax(xhr); };
 
    xhr.open("GET","http://127.0.0.1:8888/index.py", true);
    xhr.send(null);
}
Sur les différents sites/forum, ils mentionnent que le content-type doit avoir cet attribut :Access-Control-Allow-Origin: *
Ce qui est le cas au niveau de ma page index.py. Je ne comprends pas pourquoi ça ne fonctionne pas. Pouvez-vous m'aider ?

D'avance Merci,

Bonne journée,

Guillaume