CORS - статус 200, но ошибка в консоли Chrome devtools
У меня проблема с CORS, проблема в том, что мой код выполняется (состояние 200), но у меня есть ошибка в консоли разработчика Google Chrome.
Мой код:
function callUrl(url) {
var xmlhttp = null;
if (window.XMLHttpRequest) {
xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject) {
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
if (xmlhttp !== null) {
xmlhttp.open("POST", url, true);
xmlhttp.withCredentials = true;
xmlhttp.send(JSON.stringify({
}));
} else {
console.error("Your browser does not support XMLHTTP.");
}
}
callUrl('https://www.website.com/tracking?etc...');
XMLHttpRequest не может загрузить https://www.website.com/tracking? Значение заголовка "Access-Control-Allow-Origin" в ответе не должно быть подстановочным знаком "*", если режим учетных данных запроса "включить". Источник ' http://localhost:8888/', следовательно, не имеет доступа. Режим учетных данных запросов, инициируемых XMLHttpRequest, контролируется атрибутом withCredentials.
Конфигурация сервера:
"Access-Control-Allow-Origin": "*",
"Access-Control-Allow-Credentials": true,
1 ответ
В Firefox вы получите эту ошибку... даже если она работает и получила статус 200.
Вы можете прочитать об этом в https://developer.mozilla.org/en-US/docs/Web/HTTP/Server-Side_Access_Control.
Если вы используете xmlhttp.withCredentials = true; вам нужно указать конкретное происхождение, которое разрешено в коде PHP. если какой-либо источник может вызвать ваш API ... удалите этот атрибут, чтобы вы могли использовать "Access-Control-Allow-Origin": "*"