Я пытаюсь создать свою собственную платформу XMLHttpRequest, чтобы узнать, как это работает внутри.Меня удивляет то, что я не могу найти, как перехватить исключение «Одинаковое происхождение».
Идея, стоящая за этим, заключается в том, что я пытаюсь загрузить URL-адрес, если я получаю исключение того же происхождения, язапросите URL через локальный прокси-скрипт для скрипта.Я делаю это потому, что мне нужен доступ к производственным данным из изолированной программной среды разработки, и я хочу, чтобы они были максимально прозрачными для самого сценария.
Я знаю, что это плохая практика, но это наименее навязчивоспособ сделать это на данный момент:)
Просто чтобы очистить вещи - я не хочу обойти тот же источник, я просто хочу поймать выброшенное исключение, чтобы я мог что-то с этим сделать.
Вот код, который я сейчас использую для своего xhr:
var net = function (url, cb, setts){
this.url = url;
this.cb = cb;
var oThis = this;
if (!this.xhr) {
this.xhr = new XMLHttpRequest();
this.xhr.onreadystatechange = function() {
if (oThis.xhr.readyState == 4 && oThis.xhr.status == 200) {
document.body.innerHTML += "RS: "+oThis.xhr.readyState+"; ST:"+oThis.xhr.status+"; RP:"+oThis.xhr.responseText+"<br>";
}
else {
// do some other stuff :)
document.body.innerHTML += "RS: "+oThis.xhr.readyState+"; ST:"+oThis.xhr.status+"; RP:"+oThis.xhr.responseText+"<br>";
}
}
}
this.xhr.open("GET", url,true);
this.xhr.send();
} // It's WIP so don't be scared about the unused vars or hardcoded values :)
Я пытался попробовать ... поймать xhr.send ();но безрезультатно, все еще не могу поймать исключения.
Любые идеи или указатели будут с благодарностью.