Пишу ХромоПлагин. Прикручиваю запросу кукисы. Достаю через асинхронную функцию из API Хрома.
Суть топика в следующем вопросе без, собственно, знака вопроса: ононеработает.
function sendRequest(paramsSource, url, callback) {
// TODO
//var mode = isCurrentURLIsMainDomain(url) ? "mainDomainMode" : "internalLinkMode";
var xr = new XMLHttpRequest();
xr.open("GET", paramsSource.requestURL, true);
if (paramsSource.cookies) {
xr.setRequestHeader("Cookie", "as=2");
xr.setRequestHeader("Cookie", "as=2");
settingCookiesForRequest(xr, paramsSource, url, callback);
}else{
settingOnReadyStateChange(xr, paramsSource, url, callback);
}
xr.send(null);
}
function settingCookiesForRequest(xr, paramsSource, url, callback){
alert(xr);
setCookie(xr, paramsSource, url, callback, 0);
}
function setCookie(xr, paramsSource, url, callback, currInd){
var allCookiesData = paramsSource.cookies;
chrome.cookies.get(allCookiesData[currInd], function(cookieBrowser){
if(!cookieBrowser){
}else{
var cookieString = allCookiesData[currInd].name + "=" + cookieBrowser.value;
debuggingInfo(cookieString);
debuggingInfo(xr);
xr.setRequestHeader("Cookie", cookieString);
}
var nextInd = currInd + 1;
if(nextInd < allCookiesData.length){
alert("!");
setCookie(xr, paramsSource, url, callback, nextInd);
}else{
alert("!!");
settingOnReadyStateChange(xr, paramsSource, url, callback);
}
});
}
Ошибка: Uncaught Error: INVALID_STATE_ERR: DOM Exception 11 на строке
xr.setRequestHeader("Cookie", cookieString);
Тело settingOnReadyStateChange в жертву на медосмотр не приношу. Если не вызывается функция присвоения кукисов, все и работает, и правильно.
Будут благодарен прочесть кунг-фу ответ к этой проблеме.
ЗЫ Пока разгребал понял, что кукисы будут перезаписываться, но не суть. Рекурсии пока нет.