Доброго дня, столкнулся с проблемой, публикация базы сделана через IIS, посылаю запросы в 1С по http, но CORS блокирует их, нашел статью где говорится что в файле публикации базы нужно прописать хэдер я прописал но уже появилась другая ошибка! , в файле публикации у меня прописано это:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="1С" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Program Files (x86)\1cv8\8.3.21.1674\bin\wsisapi.dll" resourceType="Unspecified" preCondition="bitness32" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
-----------------------------------------------------
А при отправке запрос а на WEB сервер выходит ошибка:
Access to fetch at 'https://www.sakhpro.host:7777/KwiBOTwork/ru/hs/HTTPBot/sendFile?token=LHJ8676&file=https://w.forfun.com/fetch/74/74739e1770f31cdbfdde99cc0b2925d3.jpeg?&tel=79841390993' from origin 'https://helppc.pro' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
WhatsApp.js:10
GEThttps://www.sakhpro.host:7777/KwiBOTwork/ru/hs/HTTPBot/sendFile?token=LHJ8676&file=https://w.forfun.com/fetch/74/74739e1770f31cdbfdde99cc0b2925d3.jpeg?&tel=79841390993 net::ERR_FAILED
tstjs @ WhatsApp.js:10
onclick @ (индекс):74
WhatsApp.js:32 Error: TypeError: Failed to fetch
at tstjs (WhatsApp.js:10:5)
at HTMLButtonElement.onclick ((индекс):74:57)
P.S. статья
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<handlers>
<add name="1С" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:\Program Files (x86)\1cv8\8.3.21.1674\bin\wsisapi.dll" resourceType="Unspecified" preCondition="bitness32" />
</handlers>
<httpProtocol>
<customHeaders>
<add name="Access-Control-Allow-Origin" value="*" />
</customHeaders>
</httpProtocol>
<httpErrors errorMode="Detailed" />
</system.webServer>
</configuration>
-----------------------------------------------------
А при отправке запрос а на WEB сервер выходит ошибка:
Access to fetch at 'https://www.sakhpro.host:7777/KwiBOTwork/ru/hs/HTTPBot/sendFile?token=LHJ8676&file=https://w.forfun.com/fetch/74/74739e1770f31cdbfdde99cc0b2925d3.jpeg?&tel=79841390993' from origin 'https://helppc.pro' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: It does not have HTTP ok status.
WhatsApp.js:10
GET
tstjs @ WhatsApp.js:10
onclick @ (индекс):74
WhatsApp.js:32 Error: TypeError: Failed to fetch
at tstjs (WhatsApp.js:10:5)
at HTMLButtonElement.onclick ((индекс):74:57)
P.S. статья
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)Выяснились новые моменты, код из приложения по запросу к ресурсу
"https://thingproxy.freeboard.io/fetch/https://www.test.host:7777/BD/ru/hs/HTTPBot/sendMessage?token=LHJ8676&text=привет&tel=79841390111",
{
method: "GET",
headers: {
'Authorization': 'Basic QWRtaW46ODg4MDE5',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Methods' : 'POST,GET,PUT,DELETE,OPTIONS',
'Access-Control-Allow-Headers' : 'X-Requested-With,content-type',
},
}
С прокси в начале адреса отправляет успешно запрос, но через раз к примеру 2 раза подряд отправил все ок а на 3й -7й ошибка CORS
Если убрать прокси вначале адреса то всегда ошибка CORS
И еще это приложение запускается локально и с прокси в начале адреса через раз но отправляете запрос, а если я его публикую на хостинге сайта то отправка даже с прокси вначале адреса перестает работать и тоже всегда ошибка CORS, в общем я нечего не пойму.
P.S. фишка в том что если я делаю отправку GET запросов через сервис специальны то там всегда все отправляется без всяких проблем.https://reqbin.com/
"https://thingproxy.freeboard.io/fetch/https://www.test.host:7777/BD/ru/hs/HTTPBot/sendMessage?token=LHJ8676&text=привет&tel=79841390111",
{
method: "GET",
headers: {
'Authorization': 'Basic QWRtaW46ODg4MDE5',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Methods' : 'POST,GET,PUT,DELETE,OPTIONS',
'Access-Control-Allow-Headers' : 'X-Requested-With,content-type',
},
}
С прокси в начале адреса отправляет успешно запрос, но через раз к примеру 2 раза подряд отправил все ок а на 3й -7й ошибка CORS
Если убрать прокси вначале адреса то всегда ошибка CORS
И еще это приложение запускается локально и с прокси в начале адреса через раз но отправляете запрос, а если я его публикую на хостинге сайта то отправка даже с прокси вначале адреса перестает работать и тоже всегда ошибка CORS, в общем я нечего не пойму.
P.S. фишка в том что если я делаю отправку GET запросов через сервис специальны то там всегда все отправляется без всяких проблем.
В заголовке
Оставьте только
'Access-Control-Allow-Origin': '*'
headers: {
'Authorization': 'Basic QWRtaW46ODg4MDE5',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Methods' : 'POST,GET,PUT,DELETE,OPTIONS',
'Access-Control-Allow-Headers' : 'X-Requested-With,content-type',
},
'Authorization': 'Basic QWRtaW46ODg4MDE5',
'Access-Control-Allow-Origin': '*',
'Access-Control-Allow-Credentials' : 'true',
'Access-Control-Allow-Methods' : 'POST,GET,PUT,DELETE,OPTIONS',
'Access-Control-Allow-Headers' : 'X-Requested-With,content-type',
},
Оставьте только
'Access-Control-Allow-Origin': '*'
Можно попробовать так:
более подробно про CORS можно прочитатьна Хабре
Ответ = Новый HTTPСервисОтвет(200);
Ответ.Заголовки.Вставить("Content-type", "application/json"); // тип данных в ответе - json
// Ответ.Заголовки.Вставить("Content-Type", "text/plain;charset=UTF-8"); // тип данных в ответе - html
Ответ.Заголовки.Вставить("Access-Control-Allow-Origin", "*"); // разрешаем загрузки из разных источников
// возможно надо еще установить следующие заголовки для броузера в зависимости от "Content-type"
// Ответ.Заголовки.Вставить("Access-Control-Allow-Methods", "*");
// Ответ.Заголовки.Вставить("Access-Control-Allow-Headers", "*");
более подробно про CORS можно прочитать
Прикрепленные файлы:
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот