Для запросов CORS должен запускаться обработчик onError XmlHttpRequest.Если у вас есть доступ к необработанному объекту 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 консоль браузера.log отобразит сообщение об ошибке.Однако это сообщение об ошибке недоступно для вашего кода JavaScript (я думаю, что это сделано из соображений безопасности, я задавал этот вопрос однажды: Можно ли перехватывать ошибки CORS? ).
xhr.status и xhr.statusText не установлены в обработчике onError, поэтому у вас нет никакой полезной информации о том, почему запрос CORS не был выполнен.Вы только знаете, что это не удалось.