2010-11-29 33 views
0

Je crée une API RESTful pour un projet personnel et la zone administrative utilise Ext. Étant donné que l'API nécessite un passage d'un jeton à l'autre via l'en-tête personnalisé 'X-API-Auth', je dois pouvoir l'ajouter à chaque requête Ajax faite par Ext. Par exemple, dans la zone de gestion des utilisateurs, j'ai un GridPanel, en utilisant un JsonStore, affiche une liste d'utilisateurs enregistrés. La propriété 'autoLoad' est définie sur TRUE. De cette façon, lorsque vous visitez l'écran pour la première fois, le GridPanel est automatiquement rempli.Ext.Ajax.defaultHeaders ignoré lorsque JsonStore.autoLoad = true

Avant tout est rendu, j'incluent les en-têtes suivants:

Ext.Ajax.defaultHeaders = { 
    'X-API-Auth' : __API_KEY, 
    'Accept' : 'application/json' 
}; 

Où __API_KEY 'est le jeton. Maintenant, d'après ce que j'ai compris, ces en-têtes personnalisés devraient maintenant être envoyés avec chaque appel Ajax. Lorsque je visite la page de la liste des membres pour la première fois, j'obtiens une réponse 403 Forbidden de l'API. Cela est dû au fait que l'appel Ajax initial effectué par GridPanel n'envoie pas les en-têtes requis. L'API fonctionne correctement car, sans les en-têtes, elle ne peut pas authentifier la requête. Maintenant, si je clique sur le bouton 'recharger' dans le composant PagingToolbar inclus associé au JsonStore du GridPanel, il envoie les en-têtes. Tous les appels Ajax à l'extrémité de liste des membres invoqués manuellement donnent le résultat souhaité.

Y a-t-il une raison pour laquelle 'autoLoad' sur un magasin ne respecte pas la propriété 'defaultHeaders'? Si quelqu'un peut faire la lumière sur ce sujet, ce serait grandement apprécié. J'ai aussi posé cette question sur les forums Sencha et personne ne semble avoir de réponse.

Merci!

Répondre

1

D'accord, tout ce que l'écriture était pour ne pas. J'ai foiré l'ordre d'opération. Tous ces fichiers JavaScript ont été créés par Ext Designer. Je pensais placer la propriété 'defaultHeaders' en haut de la trajectoire d'exécution, mais il se trouve que j'avais tort.

Tous les correctifs. Je vais aller me couper moi-même maintenant.

/toujours seul