Domanda

Sto cercando di utilizzare i servizi cloud iChemLabs da un operaio HTML5 web. Normalmente i cloudservices richiede jQuery ma non posso importare che in un operaio web in modo sto usando Polline invece con una libreria ChemDoodle Web Components con cui ho messo a nudo le cose correlate ai documenti.

jQuery.Hive.Pollen fornisce una bella funzione ajax molto simile a jQuery, ma io non riesco a farlo funzionare a tutti. So che questo problema sarà difficile da risolvere se si considera che Access-control-headers devono essere impostati per consentire qualcuno di voi di trovare in realtà la soluzione. Tuttavia, io sono un programmatore javascript inizio e mi chiedevo se le mie due settimane di frustrazione è in realtà una piccola differenza. Sto cercando di richiamare la seguente funzione:

var cloudmolecule;

ChemDoodle.iChemLabs.readSMILES('N1(C)C(=O)N(C)C(C(=C1N1)N(C=1)C)=O', function(mol){
    cloudmolecule = mol;
});

Ecco un link al codice della libreria che sto usando, vedere la 'q.ajax' chiamata e sostituzione jQuery = q per p = q (p è il polline) in quel blocco di codice.

In questo momento sto solo cercando di ottenere la chiamata AJAX al lavoro in un blocco comune di javascript con il piano di migrare verso un lavoratore Web in seguito.

Se qualcuno potesse segnalare il problema a me sarei estremamente grato.

È stato utile?

Soluzione

risolto! Si scopre che iChemLabs respinge queste due intestazioni supplementari che il polline provoca:

_xhr.setRequestHeader("X-Requested-With", "Worker-XMLHttpRequest");
_xhr.setRequestHeader("X-Worker-Hive", "Pollen-JS" );

È sufficiente lasciare un commento, fuori

Inoltre, Polline ajax sembra restituire un oggetto JSON contenente i dati in formato JSON e come una stringa, in modo da fare

o = JSON.parse(data.string)//data is the parameter to the callback function

La libreria ChemDoodle ridotta (senza metodi correlati ai documenti) funzionerà come un fascino con polline ajax.

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