Ответ 1
Для запросов CORS должен срабатывать обработчик XmlHttpRequest onError. Если у вас есть доступ к необработанному объекту XmlHttpRequest, попробуйте установить обработчик событий, например:
function createCORSRequest(method, url){
var xhr = new XMLHttpRequest();
if ("withCredentials" in xhr){
xhr.open(method, url, true);
} else if (typeof XDomainRequest != "undefined"){
xhr = new XDomainRequest();
xhr.open(method, url);
} else {
xhr = null;
}
return xhr;
}
var url = 'YOUR URL HERE';
var xhr = createCORSRequest('GET', url);
xhr.onerror = function() { alert('error'); };
xhr.onload = function() { alert('success'); };
xhr.send();
Обратите внимание на несколько вещей:
-
В запросах CORS в окне браузера console.log появится сообщение об ошибке. Однако это сообщение об ошибке недоступно для вашего кода JavaScript (я думаю, что это сделано по соображениям безопасности, я задал этот вопрос раньше: Возможно ли уловить ошибки CORS?).
-
xhr.status и xhr.statusText не установлены в обработчике onError, поэтому у вас действительно нет никакой полезной информации о том, почему запрос CORS не удался. Вы только знаете, что это не удалось.