IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

ajax vers python


Sujet :

Python

  1. #1
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut ajax vers python
    Bonjour, je n'arrive pas à capturer le message envoyé par ma fonction ajax (le retour est vide)

    fichier passenger_wsgi.py:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    import os
    import sys
    import json
     
    sys.path.insert(0, os.path.dirname(__file__))
    def application(environ, start_response):
        headers = [('Content-Type', 'application/json')]
        start_response('200 OK', headers)
        response = str(environ['QUERY_STRING']) 
        return [response]
    coté web envoi des données:
    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    jQuery.ajax ({
       url: '/pythonurl',
        	type: "POST",
        	data: JSON.stringify({user_script: "1",input_data: "2"}),
        	dataType: "json",
        	contentType: "application/json; charset=utf-8",
        	success: reponserser,
    	error : errorrser
    });	
    function reponserser(server_res) {alert(server_res);}
    function errorrser () {alert('Erreur !!!');}

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    est ce que vous voyez le bon contenu dans l'onglet "Réseau" de la console de développement de votre navigateur ?
    par exemple avec Firefox, faites Ctrl + Maj + E
    https://developer.mozilla.org/fr/doc...ur_r%C3%A9seau

  3. #3
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Merci d'avoir répondu, voilà ce que j'obtiens :
    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
     
    HTTP/2 200 OK
    server: nginx/1.19.8
    date: Thu, 22 Apr 2021 13:05:33 GMT
    content-type: application/json
    content-length: 2
    status: 200 OK
    vary: Accept-Encoding
    age: 0
    via: 1.1 varnish (Varnish/6.5)
    x-varnish-cache: MISS
    x-varnish: MISS
    x-powered-by: Fastest Cache
    accept-ranges: bytes
    X-Firefox-Spdy: h2
    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
     
    POST /pythonurl HTTP/2
    Host: xxx
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:87.0) Gecko/20100101 Firefox/87.0
    Accept: application/json, text/javascript, */*; q=0.01
    Accept-Language: fr,fr-FR;q=0.8,en-US;q=0.5,en;q=0.3
    Accept-Encoding: gzip, deflate, br
    Content-Type: application/json; charset=utf-8
    X-Requested-With: XMLHttpRequest
    Content-Length: 64
    Origin: xxx
    Connection: keep-alive
    Referer: xxx
    Cookie: xxx
    TE: Trailers
    (j'ai remplacé certaines données non essentielles par xxx)
    Tout semble bien fonctionner, j'ai l'impression que la variable environ['QUERY_STRING'] ne contienne pas la donnée json envoyée.
    Où est-elle donc stockée ?

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 234
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    ah oui, vous envoyez le formulaire en "http post" donc les valeurs sont dans le corps de la requête.

    avec django ça se récupère dans "request.POST" mais là vous n'avez pas l'air de l'utiliser, quel framework utilisez-vous ?

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 281
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 281
    Points : 36 768
    Points
    36 768
    Par défaut
    Salut,

    Citation Envoyé par radjiv97441 Voir le message
    Tout semble bien fonctionner, j'ai l'impression que la variable environ['QUERY_STRING'] ne contienne pas la donnée json envoyée.
    Où est-elle donc stockée ?
    Si c'est du wsgi, environ['QUERY_STRING'] c'est juste pour les GET. Pour les POST c'est plutôt wsgi.input mais çà dépend de l'implémentation que vous utilisez.
    Et la question annexe est de savoir pourquoi vous voulez faire çà avec du wsgi directement alors qu'il existe des serveurs Web qui apportent de bien meilleurs services "au dessus".

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  6. #6
    Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2017
    Messages
    105
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2017
    Messages : 105
    Points : 53
    Points
    53
    Par défaut
    Merci à vous tous pour cette participation et surtout pour le mot clé : wsgi.input cela m'a permis de résoudre mon problème:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    try:
         request_body_size = int(environ.get('CONTENT_LENGTH', 0))
         request_body = environ['wsgi.input'].read(request_body_size)
         data=json.loads(request_body)
         user_script =data['user_script'] # code qui marche
    ...
    Et la question annexe est de savoir pourquoi vous voulez faire çà avec du wsgi directement alors qu'il existe des serveurs Web qui apportent de bien meilleurs services "au dessus"
    Le petit hébergement cpanel/php que je paye 1€20 le mois suffit pour mes quelques utilisateurs: logiciels proposés il y a "Setup Python App" et rien d'autres sur Python. Je ne vais pas me mettre sur un serveur Python, je vais devoir tout refaire ( cours en ligne avec php et jquery mobile )
    J'ai juste besoin d'un peu Python pour utiliser PythonTutor en libre accès

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. dll C++ utilisant wxThread vers python
    Par miosepayo dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 29/04/2009, 17h17
  2. [swig] C vers python
    Par julien25 dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 27/02/2009, 14h41
  3. importer données de Ecxel vers Python
    Par ranianwayra dans le forum Général Python
    Réponses: 12
    Dernier message: 29/10/2008, 15h39
  4. Récupération de donnée formulaire AJAX vers PHP
    Par Starbug dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 29/10/2007, 18h38
  5. [AJAX] Comment faire de l'ajax vers deux serveurs
    Par wtfu dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 27/07/2006, 13h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo