@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
Подскажите, наверняка какая то мелочь все портит.
  • Вопрос задан
  • 2683 просмотра
Решения вопроса 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 не поддерживает отправку дополнительных заголовков со стороны браузера. Поэтому запросы с этим методом не должны быть закрыты аутентификацией на сервере - потому что просто не получится передать информацию для аутентификации.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы