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

Apache Discussion :

Configurer Apache pour authoriser le cross domain


Sujet :

Apache

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut Configurer Apache pour authoriser le cross domain
    Bonjour,

    Je suis en train de faire une page Web qui doit appeler un Web Service et me récupérer des données.
    Tout le travail se fait sur le même serveur, mais sur des ports différents.
    Ma page web est accessible sur l'url http://monserveur/index.php
    Mon Web service est accessible sur l'url http://monserveur:8080/wsa_h01/wsa1/wsdl?targetURI=urn:inv

    Dans mon tout premier essai, j'ai eu l'erreur
    No 'Access-Control-Allow-Origin' header is present on the requested resource. Origin 'http://monserveur' is therefore not allowed access
    .
    En faisant des recherches, je suis tombée sur la notion de CORS.
    J'ai configuré le serveur Apache pour que ma requête aboutisse, avec cette configuration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Header always set Access-Control-Allow-Origin "*"
    Header always set Access-Control-Allow-Methods "GET, OPTIONS"
    Header always set Access-Control-Max-Age "1000"
    Header always set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
    # Added a rewrite to respond with a 200 SUCCESS on every OPTIONS request.
    RewriteEngine On
    RewriteCond %{REQUEST_METHOD} OPTIONS
    RewriteRule ^(.*)$ $1 [R=200,L]
    Après avoir redémarré Apache, j'ai à présent l'erreur
    The response had HTTP status code 405
    .

    Je pensais que les dernières lignes ajoutées dans Apache permettaient de corriger cette erreur (redirection des preflights).

    Dans la page Web qui tente d'accéder au Web Service, j'ai ajouté cette ligne, pour disposer d'un header ;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    request.setRequestHeader("Content-Type", "text/html; charset=utf-8");
    Je suis novice en Apache, je ne vois pas comment résoudre mon problème.

    Pourriez-vous m'éclairer svp ?

    D'avance Merci

    Fredgt

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce n'est pas un problème, c'est au contraire signe que ton service Web est bien atteignable. En fait, un service Web s'appelle la plupart du temps en utilisant une requête HTTP de type POST. Là, si tu appelles l'URL de ton service Web dans ton navigateur, la requête sera de type GET, ce qui ne plaît pas au service Web qui répond par une erreur 405 method not allowed. Il faut maintenant appeler ton service Web avec un vrai client de service Web (SOAP UI et j'en passe).

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Merci pour ta reponse Mac.
    Ce service Web est déjà utilisé par des autres programmes.
    Et avec SOAP UI, j'obtiens bien une réponse du Web Service ...

    Soit j'ai mal configuré quelque chose côté Apache, soit je dois faire quelque chose avant l'appel du Web Service ...

    Je ne sais plus trop ou chercher ....

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Bon .... j'ai passé en POST, j'ai commenté le setrequestheader et j'ai passé le withCredentials à false?
    Ya du changement ... maintenant j'ai l'erreur 404 !


  5. #5
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce n'est pas très logique. Je ne vois pas en quoi le fait de ne plus renvoyer un content type HTML dans la réponse provoquerait une erreur 404. Reste le withCredentials, à supposer que tu n'as pas fait d'autres modification : pourquoi vouloir le passer à false ? Est-ce que ça remarche si tu mets true ?

    Sinon, qu'y a-t-il dans le fichier error_log d'Apache et dans les traces d'erreur de ton serveur d'applications ?

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 10
    Points : 5
    Points
    5
    Par défaut
    Je trouve aussi ca très étonnant ...
    Je n'ai pas du tout d'erreur dans l'error_log, ni ailleurs ... je n'ai vraiment que cette erreur 405 côté navigateur.
    J'ai refait un test complet en intégrant mon WSDL dans SOAP UI, j'ai récupéré l'entête soap à envoyer, je l'ai mis en variable dans mon code javascript. Toujours pareil.
    Bon j'ai remis la config qui me semble correcte. De nouveau l'erreur 405 ...
    J'ai beau croisé toutes les infos que je trouve sur les forums, les blogs, ...

  7. #7
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Comme je disais, l'erreur 405 n'est pas vraiment une erreur : elle est renvoyée car tu contactes ton Web service avec la mauvaise méthode HTTP. Tester un Web service depuis un navigateur renvoie très souvent cette erreur car le Web service requière qu'on l'appelle par une méthode POST ou PUT permettant d'envoyer des données structurées (XML par exemple). Donc vérifie la méthode que utilisée pour contacter le service Web.

    Du détail, du détail, du détail !!!
    Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute

Discussions similaires

  1. Configurer mod_jk pour rediriger un sous-domaine vers JBoss
    Par rozwel dans le forum Wildfly/JBoss
    Réponses: 5
    Dernier message: 01/08/2012, 15h48
  2. [Apache/WebDAV] Configurer Apache pour SVN sous Mandriva
    Par Xavier3131 dans le forum Subversion
    Réponses: 20
    Dernier message: 05/03/2008, 13h40
  3. [EasyPHP] Configurer Apache pour un reseau local
    Par goomie dans le forum Apache
    Réponses: 8
    Dernier message: 21/10/2007, 11h33
  4. configuration apache pour servlet
    Par mikees dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 08/05/2007, 14h42
  5. [EasyPHP] Configurer Apache pour des accées distants
    Par Fathallah dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 09/03/2006, 19h06

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