эта шайтан машина работает.
если делать запрос через curl
curl -H 'Authorization:Basic BASE64_string' --url 'http://exemple.net/?query=string' --verbose
То все норм, получаю ответ с сервера. В заголовках Access-Control-Allow-Origin: *
То есть, сервер не должен ругаться на запросы с любого ресурса. Но если я посылаю fetch запрос через страницу, то он ругается что сервер не доступен.
let response = fetch(url, {
method: 'GET',
mode: 'cors',
headers: {
'Authorization': 'Basic ************'
}
});
console.log(response.text)
Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.
Но сервер отдает Access-Control-Allow-Origin: *
Не понимаю как это работает. Если поменять на mode: 'no-cors' то получаю 504 ошибку
В принципе fetch запрос правильный? Если, да, то пойду с серваком разбираться.
Просто очень уж не хочется оставлять прослойку из php который будет просто трансфером между сервером и js
у curl нет понятия CORS, там нет такой проверки поэтому все работает
то есть нужно настраивать сервак, чтобы он отрабатывал cros запросы?
Возвращаюсь к своим баранам. Написал запрос на node, он тоже работает ок, данные получает. То есть получается, что web-server и api-server друг-друга понимают, а вот через клиента напрямую направить запрос к api никак 😔 видимо, клиент при запросе отправляет свой ip (компа, а не сайта) Где-нибудь можно почитать какие данные отправляет браузер при http запросе? Думал через клиент все сделать, но, видимо, придется все же писать какую-то прослойку для общения клиент - сервер - апи
нажми F12 и выбери вкладку "network" или "xhr"
я имею где найти перечень всех возможных данных, а не только то, что показывает браузер. Желательно с описанием что конкретно оно означает.
Обсуждают сегодня