2010-08-22 12 views
0

J'ai une application adobe air que j'ai créée en utilisant Dreamweaver CS5 comme IDE. Lorsque je prévisualise l'application, tout fonctionne parfaitement. Lorsque je crée l'application et que j'essaie de l'exécuter, la première requête XMLHttpRequest que j'exécute échoue. Je pense que c'est un problème de sécurité, mais je n'en ai aucune idée.XMLHttpRequest fonctionne dans l'aperçu Adobe Air mais pas dans l'application compilée

je reçois le message de mot de passe « invalide » à chaque fois parce que le domainCOM.status retourne un statut de 0.

MISE À JOUR: J'ai installé une application pour regarder le XMLHttpRequest et il dit que je reçois un statut de 200 et je peux voir le bon XML renvoyé. Ce Menas que l'air adobe est en quelque sorte l'état déploie de 200 dans un 0.

MAJ2: Si je le lance en avant-première je reçois

readyState 2, état 200 readyState 3, état 200 readyState 3, le statut 200 readyState 4, état 200

mais si je le lance dans la version compilée, je ne reçois que

readyState 4, état 0

semble il ne fait rien mais je peux voir le XHR réel faisant l'appel et revenant en utilisant Fiddler2.

Très étrange.

Toute aide/pensée serait appréciée. Voici l'extrait de code:

var url = "http://open-api.domain.com/authentication.getUserToken.domain"; 
var vars = "v=3&appKey="+appKey+"&email="+email+"&password="+password; 

var domainCOM = new XMLHttpRequest(); 
domainCOM.open("POST", url, true); 
domainCOM.setRequestHeader ("Content-type", "application/x-www-form-urlencoded"); 
domainCOM.setRequestHeader ("Content-length", vars.length); 
domainCOM.setRequestHeader ("Connection", "close");   

domainCOM.onreadystatechange = function() {  
    if (domainCOM.readyState == done) { 
     if (domainCOM.status == ok) { 
     if (domainCOM.responseText) { 
      //do some stuff 
     } 
     else { 
      window.alert('unknown error in authenticationGetUserToken.'); 
     } 
     } 
     else {    
      window.alert('Password/Userid combination is not valid. Please correct and try again.'); 
     }  
    } 
}; 
domainCOM.send(vars); 
return; 

Merci, Casey

Répondre

0

Chaque fois que je reçois un code d'état 0 dans un navigateur Web, cela signifie généralement que je fais une demande inter-domaines et le navigateur est tout simplement laisser tomber la demande. Vos fichiers JS sont-ils chargés dans le application sandbox? Bien que je ne l'ai pas encore essayé, Air autorise [les requêtes AJAX inter-domaines] dans le sandbox de l'application, mais a fortement limité les capacités inter-domaines des pages chargées sur les serveurs web.