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

JavaScript Discussion :

Client Web / Serveur Java


Sujet :

JavaScript

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut Client Web / Serveur Java
    Autant le préciser tout de suite, je débute !

    J'ai codé un serveur java qui écoute sur le port 4000. Ce que je souhaiterait faire maintenant c'est que depuis une formulaire sur mon serveur local, en ajax, il envoie "hello" au serveur, le serveur réponde et renvoie une réponse.

    Est-ce que c'est possible ou je passe complètement à côté de qqch

    Pour l'instant, j'essaie de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sendReq.open("POST", 'http://localhost:4000/', true);
    mais j'obtiens une erreur "permission réfusée d'appeller méthode xmlhttprequest.open". J'ai vu que pas mal de personne ont ce problème mais je me demandais si moi c'était différent car j'aimerais qu'il se connecte à un petit soft serveur sur la même machine...

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    à priori c'est avant même l'url que tu aurais un souci ... ?
    la declaration de l'activeX est faite comment ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function getXmlHttpRequestObject() {
    	if (window.XMLHttpRequest) {
    		return new XMLHttpRequest();
    	} else if(window.ActiveXObject) {
    		return new ActiveXObject("Microsoft.XMLHTTP");
    	} else {
    		document.getElementById('p_status').innerHTML = 'Status: Cound not create XmlHttpRequest Object.  Consider upgrading your browser.';
    	}
    }
    Mais je peux faire ce que je veux? Un client web peut se connecter à n'importe quel type de serveur?

  4. #4
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    essaye de pointer vers un fichier sur le serveur ?


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sendReq.open("POST", 'http://localhost:4000/mapage.php', true);
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Je pense que je n'ai pas bien exposé mon projet.


    Mon serveur est en fait un serveur java tout bête. Je pouvais avec un client java se connecter dessus et ils pouvaient se parler entre eux. J'aimerais maintenant ne plus avoir un client java, mais un site internet. Une fois que cela fonctionnera, je vais étoffer les fonctionnalités de mon serveur. Mon serveur écoute sur le port 4000, est dès qu'il a un request, il y a une création de socket, etc... mais j'ai la "petite" impression que je passe à côté de qqch

  6. #6
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ajax doit pointer sur un fichier ...
    enfin à ma connaissance...
    le fichier est soit directement récupéré (genre fichier texte) ou le fichier s'exécute coté serveur et renvoie une réponse
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Ah c'est embêtant ça

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben tu peux contourner le problème en collant à intervalle regulier un fichier sur ton serveur qui contient les infops voulues et faire un request sur le fichier ?
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    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
    19
    20
    21
    22
    23
    24
    25
    26
    <!-- 
    function getXhr(){
    	var xhr = null; 
    	if(window.XMLHttpRequest) // Firefox et autres
    	   xhr = new XMLHttpRequest(); 
    	else if(window.ActiveXObject){ // Internet Explorer 
    		try {
    			xhr = new ActiveXObject("Msxml2.XMLHTTP");
    		} catch (e) {
    			xhr = new ActiveXObject("Microsoft.XMLHTTP");
    		}
    	}
    	else { // XMLHttpRequest non supporté par le navigateur 
    	   alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest..."); 
    	   xhr = false; 
    	} 
    	return xhr;
    }
     
    function sendText(){
    	var xhr = getXhr();
    	xhr.open("POST","http://localhost:4000",true);
    	xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    	xhr.send();
    }
    //-->
    Je ne comprends pas pourquoi cela ne marcherait pas! Je ne comprends nons plus pas ce que tu proposes comme alternative, désolé.

  10. #10
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    tu ne pointes pas sur un fichier ... il doit essaye de taper l'index ?

    je propose coté serveur d'ecrire un fichier et de pointer dessus avec ajax coté client ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Ca doit être la fin de semaine , mais je ne saisi toujours pas ton idée.

  12. #12
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    as tu saisi que ajax devait appeler un fichier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sendReq.open("POST", 'http://localhost:4000/mapage.php', true);

    imagine que coté serveur tu aies une routine qui update a intervalle régulier le fichier en question ...
    ton ajax recupèrerait à intervalle tout aussi regulier le fichier updaté ...

    Maintenant je suis peut être complètement à coté de la plaque parceque je n'ai pas compris ce que tu voulais faire ou peut être t'attends tu à ce ajax puisse faire une chose hors de sa portée
    .
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  13. #13
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Merci pour ces explications, c'est déjà beaucoup plus clair.

    Je vois maintenant deux possibilités... soit j'ajoute un peu d'infrastructure dans mon serveur afin qu'il sert le ficher html/javascript aussi, comme ça ajax beuglera pas car ce sera sur le même serveur / port

    OU

    Je fais comme tu proposes, mais : ce que j'essaie de faire, ce que depuis un site il envoie des infos à ce serveur, ce serveur traîte ces données puis renvoie au site pour que cela s'affiche sur le navigateur. Je perds donc du temps en chaque rafraîchissement de page et ce n'est pas voulu.

    Pour revenir à la première solution, c'est difficile de prendre en charge des fichiers html / javascript depuis un serveur fait maison ?

  14. #14
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    ben justement ajax permet de ne pas rafraichir la page coté client.
    Ce que tu expose là est précisément le btu d'ajax ...

    tu pointes sur un fichier php qui fait un traitement et renvoie l'information au client ...

    On arrive à faire de l'autocomplétion avac ajax alors niveau perte de temps ...
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  15. #15
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Ah... on voit que je n'ai jamais touché à ajax avant !

    Client web (formulaire), lorsque la personne appuie sur "enter" par exemple:

    index.php -> traite_requete.php sur le même serveur. Cette page contacte ensuite le serveur mais pas par ajax. Le serveur traite la donnée, modifie une page retour.txt par exemple. Traite_requete.php vérife toutes les secondes si retour.txt a été modifié, et dès que c'est le cas, index.php est rafraîchi.

    Donc la partie "ajax" ce fait entre index.php et traite_requete.php. C'est ça l'idée ?

  16. #16
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    l'dée de ajax est que SANS RECHARGER LA PAGE COTE CLIENT, tu attaques un fichier php par exemple qui effectue une requête coté serveur et renvoie une réponse que tu réceptionnes coté client sans avoir quitté la page coté client...

    Autrement dit colé client ajax permet à javascript de récupérer des inforamtions coté serveur
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  17. #17
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Bon dis moi si je me trompe :

    J'ai 3 fichiers sur un serveur web : index.html, javascript.js et script.php.

    index.html : côté visible pour le client. Un input text, quand celui ci est chargé, appelle une fonction javascript.

    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
    function sendText(){
    	if(document.getElementById('txt_message').value == '') {
    		alert("You have not entered a message");
    		return;
    	}
     
    	if (sendReq.readyState == 4 || sendReq.readyState == 0) {
    		sendReq.open("POST","script.php",true);
    		sendReq.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
    		sendReq.onreadystatechange = getText; 
    		var param = '?message=' + document.getElementById('txt_message').value;
    		sendReq.send(param);
    		document.getElementById('txt_message').value = '';
    	}
    }
    Donc dès qu'il y a changement d'état, appelle la fonction getText.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function getText() {
    	if (receiveReq.readyState == 4 || receiveReq.readyState == 0) {
    		receiveReq.open("GET", 'script.php', true);
    		receiveReq.onreadystatechange = handleReceiveText; 
    		receiveReq.send(null);
    	}			
    }
    Et lorsque qu'on a reçu une reponse (format xml) de script.php, c'est handleReceiveText qui s'en occupe.

    Dans script.php, j'ai juste simulé la réponse du serveur et ça marche tiptop. Il faut maintenant, à la place d'avoir une réponse toute faite dans script.php, que le script contacte mon autre serveur java pour lui donner les données, qu'il les traîte et que cela soit retourné dans script.php.. qui le retounera au client immédiatement. Comment se connecter et envoyer les données au serveur ?

  18. #18
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    He je ne suis pas entré dans le détail dqsn ton code mais j'ai cru y voir des readyState avant un open ...

    fais plutot un tour par là, tu y trouveras tout ce que tu cherches ...

    http://javascript.developpez.com/cours/#ajax
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  19. #19
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2007
    Messages : 26
    Par défaut
    Bah oui... j'ai lu plusieurs tutoriaux où ils faisaient ainsi...

    Je vais lire ce que tu me proposes, mais je suis pas avancé pour mon problème puisque là il me semble que ce n'est plus un problème d'Ajax... mais de savoir comment contacter un server pour lui donner qqch à traiter et de stocker la réponse

  20. #20
    Membre extrêmement actif

    Homme Profil pro
    Consultant
    Inscrit en
    Janvier 2006
    Messages
    1 376
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant

    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 376
    Par défaut Permission refusée
    XMLHttpRequest n'autorise pas l'appelle vers des domaines et/ou ports différents de la page qui appelle. C'est incontournable. Il faut obligatoirement appelé des domaine et ports identiques à la page en cours.

    Il n'y a pas moyen, avec XMLHttpRequest de contourner la sécurité.
    http://localhost est différent de http/localhost:4000, donc refusé.

    Il existe un moyen de contourner le problème, en effectuant une réponse du serveur avec du contenu Javascript (text/javascript au lieu de text/xml), et de faire des appels coté client par une balise "<SCRIPT>" dynamique.

    C'est chaud à codé, mais ça marche.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 1
    Dernier message: 21/04/2012, 19h55
  2. Problème de connections Client flash / serveur java
    Par bieltan dans le forum Intégration
    Réponses: 0
    Dernier message: 23/02/2011, 08h53
  3. Réponses: 0
    Dernier message: 20/10/2010, 09h07
  4. Réponses: 1
    Dernier message: 24/10/2008, 12h28
  5. [SOCKET] Client C connecté à un serveur Java
    Par missllyss dans le forum Développement
    Réponses: 2
    Dernier message: 07/06/2004, 13h14

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