Domanda

Ho creato un progetto in Flex Builder con il tipo di application server impostato su none.

Quando eseguo il debug, posso accedere al servizio Web dal mio computer locale su un sito http :? //mysite.com/ws/ws.aspx wsdl

Quando carico l'app flex su mysite.com/myapp.html funziona alla grande.

Ma quando lo carico su myapp.mysite.com/myapp.html non accederà al servizio web.

Qualcuno sa cosa mi sto perdendo?

Grazie

P.S. WS è stato creato con VB.net e quando creo un progetto flessibile con il tipo di server delle applicazioni impostato su .net, non accederò a WS dal mio computer locale

questo è il mio file crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM "http://www.adobe.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
  <site-control permitted-cross-domain-policies="all"/>
  <allow-access-from domain="*"/>
  <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

** La mia ipotesi è che non sia un problema flessibile, ma una funzionalità di sicurezza .net ... che non so come configurare.

.NET non consentirà alle app di usarlo al di fuori del proprio dominio. **

È stato utile?

Soluzione

Per impostazione predefinita, Flex non consente l'accesso ai servizi Web su host remoti. Questa è una funzionalità di sicurezza di Flex. Poiché l'app Flex è distribuita su myapp.mysite.com , è sotto host diverso rispetto al servizio su mysite.com .

Puoi aggiungere un crossdomain.xml a mysite.com che Flex controllerà per vedere se il servizio consente l'accesso da domini diversi. Il file crossdomain.xml deve trovarsi nella radice web del dominio ( mysite.com/crossdomain.xml ). Ho usato i seguenti contenuti per consentire l'uso del debug. Si noti che ne consente l'uso completo, quindi se si desidera limitare l'uso in produzione, è necessario modificarlo in seguito.

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy SYSTEM
    "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
   <allow-access-from domain="*" to-ports="*" />
   <allow-http-request-headers-from domain="*" headers="*"/>
</cross-domain-policy>

Ulteriori informazioni in Documentazione Flex , in particolare articolo della knowledge base .

Altri suggerimenti

Prova a controllare le richieste in corso con Tamper Data (estensione per Firefox). Verifica che l'app trovi il file crossdomain.xml. Se il percorso è disattivato, questo è il tuo problema.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top