@FreeArcher
Senior 1С; php, JS Starter

Как в 1C разрешить CORS запросы?

Пробую выполнять ajax запросы из JS в 1С. Уже все перепробовал все равно ошибки.

5ccffb03ed6e1946105526.png
xhr.js?47bc:178 OPTIONS http://localhost/bespalov_trade/hs/api/GetInfoByTel?tel=9999999999 401 (Unauthorized)
localhost/:1 Access to XMLHttpRequest at 'http://localhost/bespalov_trade/hs/api/GetInfoByTel?tel=9999999999' from origin 'http://localhost:8080' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.


5ccffb0d7ce6a585641308.png
axios({
        method: "get",
        url:
          "http://localhost/bespalov_trade/hs/api/GetInfoByTel?tel=9999999999",
        auth: {
          username: "web",
          password: "123"
        }
      })
        .then(function(response) {
          console.log(response);
        })
        .catch(function(error) {
          console.log(error);
        });


Кусок когда из 1С, где устанавливаю заголовки
Ответ = Новый HTTPСервисОтвет(200);
	Ответ.Заголовки.Вставить("Content-Type", "charset=utf-8");
	Ответ.Заголовки.Вставить("Content-Type", "text/html");
	Ответ.Заголовки.Вставить("Access-Control-Allow-Origin", ""); 
	Ответ.Заголовки.Вставить("Access-Control-Allow-Headers", "*");


Сервер apache. Платформа 3.8.14
Подскажите, наверняка какая то мелочь все портит.
  • Вопрос задан
  • 2641 просмотр
Решения вопроса 1
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
CORS не при чём, его ошибки выглядят по другому.
У вас ошибка авторизации.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Horus123
Скорее всего Вам уже неактуально, но другим возможно пригодиться. Скорее всего на 1с базовая авторизация.
Для авторизации нужно передавать логин:пароль в base64.
const token = Buffer.from(`${email}:${password}`, "utf8").toString(
            "base64"
        );
     const config = {
            method: "get",
            url:
                "http://example.com",
            headers: {
                Authorization: `Basic ${token}`,
            }
        }
        axios(config)
Ответ написан
Комментировать
@to2n
Метод options не поддерживает отправку дополнительных заголовков со стороны браузера. Поэтому запросы с этим методом не должны быть закрыты аутентификацией на сервере - потому что просто не получится передать информацию для аутентификации.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
summer Ярославль
от 100 000 до 140 000 ₽
КРАФТТЕК Санкт-Петербург
от 60 000 до 80 000 ₽
19 апр. 2024, в 20:43
20000 руб./за проект
19 апр. 2024, в 20:11
500 руб./за проект