Несовместимость ChemDoodle Ajax с Pollen.js - PullRequest
0 голосов
/ 07 сентября 2011

Я пытаюсь использовать облачные сервисы iChemLabs от веб-работника html5.Обычно облачные сервисы требуют jQuery, но я не могу импортировать это в веб-работника, поэтому вместо этого я использую пыльцу с библиотекой веб-компонентов ChemDoodle, с помощью которой я удалил связанные с документом вещи..Pollen предоставляет хорошую функцию ajax, очень похожую на jQuery, но я не могу заставить ее работать вообще.Я знаю, что эту проблему будет сложно решить, учитывая, что необходимо установить заголовки Access-control, чтобы любой из вас мог найти решение.Тем не менее, я начинающий программист Javascript, и мне было интересно, если мои две недели разочарования на самом деле небольшая разница.Я пытаюсь вызвать следующую функцию:

var cloudmolecule;

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

Вот ссылка на код библиотеки, который я использую, см. Вызов q.ajax и замените jQuery = q наp = q (p для пыльцы) в этом блоке кода.

Сейчас я просто пытаюсь заставить вызов ajax работать в обычном блоке javascript с планом перехода на веб-работникапозже.

Если бы кто-нибудь мог указать мне на проблему, я был бы чрезвычайно благодарен.

1 Ответ

0 голосов
/ 08 сентября 2011

решена! Оказывается, iChemLabs отклоняет эти два дополнительных заголовка, которые создает пыльца:

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

Просто закомментируйте их

Кроме того, паяльник Pollen возвращает объект JSON, содержащий данные в формате JSON И в виде строки, так что

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

Сокращенная библиотека ChemDoodle (без связанных с документами методов) будет работать как шарм с пыльцой ajax.

...