Разная реакция сервера на нажатие кнопки на телефоне и компьютере CORS policy

Рейтинг: 0Ответов: 1Опубликовано: 11.08.2023

Сейчас с помощью Javascript я отправляю пост запрос к апи на сервере. На компьютере все работает адекватно, однако попытался повторить то же самое действие с мобильного устройства и столкнулся со следующей ошибкой:

Access to fetch at 'http://my-site:8000/receiver' from origin 'http://www.my-site:8000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled

В то же время на пк на этой же версии сайта все работает без ошибок. Обработчик нажатия на кнопку:

add_button.onclick = async function () {
    let result = { "text": text_field.value, "stat": "new" }
    await fetch("http://my-site:8000/receiver",
        {
            method: 'POST',
            headers: {
                'Content-type': 'application/json',
            },
            body: JSON.stringify(result)
        }).then((response) => {
            return response.json();
        })
        .then((data) => {
            number = data;
            console.log(number)
        });
}

Ответы

▲ 0

Проблема была в запросе от адреса с url содержащим "www." к url без "www."

Помог совет Alexey Ten:

проще всего в запросе убрать часть http://my-site:8000 и вообще не думать про CORS.

Соответственно избавляемся от левой части url полностью и оставляем только "/receiver" и все работает.