0

我正在尝试使用来自 html5 网络工作者的 iChemLabs 云服务。通常,云服务需要 jQuery,但我无法将其导入网络工作者,因此我使用 Pollen 代替 ChemDoodle Web 组件库,我已经使用该库剥离了与文档相关的内容。

jQuery.Hive.Pollen 提供了一个很好的 ajax 函数,与 jQuery 非常相似,但我似乎根本无法让它工作。考虑到需要设置访问控制标头以允许你们中的任何人实际找到解决方案,我知道这个问题将很难解决。然而,我是一个初级 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 块中工作,并计划稍后迁移到 web worker。

如果有人可以向我指出问题,我将非常感激。

4

1 回答 1

0

解决了!结果 iChemLabs 拒绝了花粉产生的这两个额外的标头:

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

只需将它们注释掉

此外,Pollen ajax 似乎返回了一个 JSON 对象,其中包含 JSON 格式的数据和作为字符串,所以这样做

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

简化的 ChemDoodle 库(没有与文档相关的方法)将像花粉 ajax 的魅力一样工作。

于 2011-09-08T00:16:37.720 回答