Zend FR

Consultez la FAQ sur le ZF avant de poster une question

Vous n'êtes pas identifié.

#1 02-03-2010 12:32:49

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

400 Bad Request error was encountered while trying to use an Erro...

Hello,

Je m'arrache les cheveux avec un truc, si certains ont une idée.

Sur une seule machine j'ai installé la dernière version de ZendServer CE (la 5), je récupère exactement le même projet via SVN que sur les autres machines de dev, mais j'ai un problème que je ne comprend pas.

Sur cette machine donc, j'obtiens lorsque j'envoie une réponse JSON, ceci :

Code:

{"data":"{\"id\":null,\"country\":null,\"login\":\"utilisateur\",\"password\":\"mot de passe\",\"email\":null,\"active\":false,\"activationCode\":null,\"roleId\":null,\"_notification\":{\"_errors\":[]}}","errors":{"authLogin":{"authFailed":"Echec de l\u2019authentification!"}}}<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<p>Additionally, a 400 Bad Request
error was encountered while trying to use an ErrorDocument to handle the request.</p>
</body></html>

Ce que fait ma vue:

Code:

<?php
$this->response->setHeader('Content-Type', 'application/json'); 
if ($this->account->getNotification()->hasErrors()
    || false === $this->authResult) :
    $this->response->setHttpResponseCode(400); // bad request    
    echo $this->json(array(
        'data' => $this->account->toJson(),
        'errors' => array('authLogin' => array(
            'authFailed' => $this->_('global.auth.errors.authFailed')
        ))
    ));
else :
    $this->response->setHttpResponseCode(200); // ok
    echo $this->json(array(
        'data' => $this->account->toJson(),
        'redirect' => $this->url(array(
            'controller' => 'index',
            'action' => 'index'
        ), 'default') 
    ));
endif;

Sachant que ça fonctionne sur toutes les machines sauf celle-ci, il me rajoute le html avec cette erreur 400 tout seul. J'ai regardé dans les conf, je n'ai pas de ErrorDocument de configuré.
J'ai aussi comparé les fichiers httpd.conf et php.ini avec une autre machine de dév sur laquelle ça fonctionne et je ne vois rien de particulier smile

Les autres machines de dév. ont un environnement tel qu'il est par défaut à l'installation de Zend Server CE 4.

Les alias sont configurés exactement de la même manière :

Code:

<Location /test>
  SetEnv APPLICATION_ENV development
  
  # Zend rewrite rules
  RewriteEngine On
  RewriteBase /test
  RewriteCond %{REQUEST_FILENAME} -s [OR]
  RewriteCond %{REQUEST_FILENAME} -l [OR]
  RewriteCond %{REQUEST_FILENAME} -d
  RewriteRule ^.*$ - [NC,L]
  RewriteRule ^.*$ index.php [NC,L]

  Order deny,allow
  Allow from all
</Location>
Alias /test "D:\PHPServer\Zend\Apache2\htdocs\test\www"

Je ne sais franchement pas quoi faire !

Des idées ?

Merci pour votre aide,
A+ benjamin.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#2 02-03-2010 13:48:02

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: 400 Bad Request error was encountered while trying to use an Erro...

Perso, je n'utilise pas ZServer CE.
Mais, je te conseille d'utiliser un outil comme firebug (extension firefox) ainsi, tu vois exactement les requêtes/réponses avec entêtes.

Exmple très bête, je me suis arracher les cheveux plusieurs a cause de cette ligne de mon fichier application.ini
phpSettings.default_charset = 'utf-8'

Cette ligne posait des problèmes avec IE. Une requête ajax fesait que IE affichait un code d'erreur incomprenhensible. En résumé, ce sont les simples guillemets qui posaient problème.
Tout ca pour dire, que ca tient defois à un tout petit détail qui ne saut pas forcément aux yeux

Désolé de ne pouvoir t'aider.

Une pistes au pif : ZEndCE réagit différemment de tes autres machines (apache ?). Pt être que tu envois tes données JSON mais avec un code 400 et que ton ZendCE rajoute du html à cause de ce code


----
Gruiiik !

Hors ligne

 

#3 02-03-2010 14:06:01

Delprog
Administrateur
Date d'inscription: 29-09-2008
Messages: 670

Re: 400 Bad Request error was encountered while trying to use an Erro...

nORKy a écrit:

Une pistes au pif : ZEndCE réagit différemment de tes autres machines (apache ?). Pt être que tu envois tes données JSON mais avec un code 400 et que ton ZendCE rajoute du html à cause de ce code

Oui exactement, je suppose que le serveur essaie de "handle" l'erreur mais ne peut pas, seulement je ne sais pas où je maitrise ce fonctionnement d'apache.
Sur les autres machines ce n'est pas la même version de Zend Server, mais par contre le projet est identique en tous points (fichiers ini etc., ça vient du svn). Mais je n'ai pas trouvé de différences entre les php.ini et les httpd.conf et malheureusement mes compétences serveur s'arrêtent là :p

Je soupçonne très fortement le serveur de réagir à mon code de réponse.


http://www.anonymation.com/ - anonymation - Studio de création.
http://code.anonymation.com/ - anonymation - blog - développement et architecture web

Hors ligne

 

#4 03-03-2010 08:26:37

nORKy
Membre
Date d'inscription: 06-03-2008
Messages: 1098

Re: 400 Bad Request error was encountered while trying to use an Erro...

Beh, t'as pas le choix, faut que tu lises tous tes fichiers de conf jusqu'à trouvé une ligne qui t'es inconnus.

Moi, j'utilise les filtres pour modifier des adresses http dans des cas précis sur des reverses proxy. Je modifie la page web à la volée, donc, je suppose que les filtres peuvent aussi rajouté à la suite du document

C'est *Filters* dans les fichiers de conf.

Autre piste : Si ton serveur réagit en fonction d'entête, il est possible qu'un "setenvif" traine qqpart (pour tester le code dans les headers)

sinon, comme tu dis, faut trouver un addHandler

Ou alors, carrément un module apache fournis par ZCE

Dernière modification par nORKy (03-03-2010 08:29:53)


----
Gruiiik !

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 Rickard Andersson
Traduction par punbb.fr

Graphisme réalisé par l'agence Rodolphe Eveilleau
Développement par Kitpages