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
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 #!/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()
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 #!/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)
Sur les différents sites/forum, ils mentionnent que le content-type doit avoir cet attribut :Access-Control-Allow-Origin: *
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); }
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
Partager