Pregunta

Estoy tratando de usar servicios en la nube Ichemlabs de un trabajador web HTML5. Normalmente, el CloudServices requiere jQuery, pero no puedo importar eso a un trabajador web, por lo que estoy usando Pollen con una biblioteca de Componentes Web ChemDoodle con la que he despojado las cosas relacionadas con el documento.

jQuery.hive.pollen proporciona una buena función Ajax muy similar a jQuery, pero parece que no puedo hacer que funcione en absoluto. Sé que este problema será difícil de resolver teniendo en cuenta que los encabezados de control de acceso deben estar configurados para permitir que cualquiera de ustedes encuentre realmente la solución. Sin embargo, soy un programador de JavaScript inicial y me preguntaba si mis dos semanas de frustración son en realidad una pequeña diferencia. Estoy tratando de invocar la siguiente función:

var cloudmolecule;

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

Aquí hay un Enlace Al código de la biblioteca que estoy usando, consulte la llamada 'Q.AJAX' y sustituya jQuery = Q por p = Q (p es para polen) en ese bloque de código.

En este momento solo estoy tratando de hacer que la llamada AJAX trabaje en un bloque ordinario de JavaScript con el plan de migrar a un trabajador web más tarde.

Si alguien pudiera señalarme el problema, estaría extremadamente agradecido.

¿Fue útil?

Solución

¡Resuelto! Resulta que Ichemlabs rechaza estos dos encabezados adicionales que crea el polen:

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

Simplemente comentalos

Además, el polen Ajax parece devolver un objeto JSON que contiene los datos en formato JSON y como una cadena, también

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

La biblioteca reducida de ChemDoodle (sin métodos relacionados con el documento) funcionará como un encanto con el polen AJAX.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top