2011-09-07 171 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一樣工作。

相關問題