2011-09-07 49 views
0

我试图从html5 web worker使用iChemLabs云服务。通常云服务需要jQuery,但我无法将其导入到Web工作人员,因此我使用Pollen代替了ChemDoodle Web组件库,我已将其与文档相关的事物分离出来。ChemDoodle Ajax与Pollen.js不兼容

jQuery.Hive.Pollen提供了一个非常类似于jQuery的不错的ajax函数,但我似乎无法让它工作。我知道这个问题在解决Access-control-headers需要设置为允许任何人真正找到解决方案时会很棘手。然而,我是一个开始的JavaScript程序员,我想知道我的两周挫折实际上是一个小小的差异。我想调用下面的函数:

var cloudmolecule; 

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

这里是一个link到我使用的库代码,请参阅“q.ajax”打电话替代的jQuery = Q为P = Q(p是花粉)在该代码块中。

现在我只是试图让ajax调用在JavaScript的普通块中工作,并计划稍后再迁移到web worker。

如果有人能指出我的问题,我将非常感激。

回答

0

解决!原来iChemLabs拒绝花粉创建这两个额外的头:

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

简单地将它们注释掉

此外,花粉AJAX似乎返回包含JSON格式并作为字符串数据的JSON对象,这样做

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

减少的ChemDoodle库(没有文档相关的方法)将像花粉ajax一样工作。