Я хочу сделать несколько API-запросов для перевозчиков на странице продукта BigCommerce, и у меня есть некоторые учетные данные для этих запросов, которые я не хочу показывать в своем коде JS.В соответствии с конкретной средой BigCommerce я не могу вносить какие-либо изменения в внутренний код.Я прочитал много похожих вопросов, и теперь у меня есть только один вопрос.
Это единственный способ сделать это, используя мой собственный веб-сервер API, который будет хранить учетные данные и отправлять POST-запрос стороннему API?Затем я получу эту информацию, используя запрос POST через JS к своему собственному API.
Я попытался запустить приложение Ruby API на веб-сервере nginx.Однако это не удалось, поскольку браузер заблокировал мой запрос fetch () в соответствии с политикой CORS.Я попытался добавить параметр Access-Control-Allow-Origin: * в заголовок ответа сервера, записав его в файл конфигурации ruby, но браузер не распознал его.Также я попытался настроить файл конфигурации на стороне nginx, но это не помогло мне с ответом политики CORS.Это интересно, потому что с помощью приложения Restlet я получил ответ от своего собственного API-приложения с правильной информацией и статусом "ok".
(async function application() {
let dataRuby = {
url: 'http://IP_address/index',
body: {"name": "21312", "year": "2019"}
};
function getApi(data) {
let myInit = {};
myInit.method = "POST";
myInit.body = JSON.stringify(data.body);
myInit.headers = {
'Content-Type': 'application/json'
};
let myRequest = new Request(data.url, myInit);
return fetch(myRequest).then(
res => res.json()
);
}
let response = await getApi(dataRuby);
console.log(response);
})()
Доступ к выборке на http://IP_address/index из источника 'null' был заблокировансогласно политике CORS: в запрашиваемом ресурсе отсутствует заголовок «Access-Control-Allow-Origin».Если непрозрачный ответ отвечает вашим потребностям, установите режим запроса «no-cors», чтобы получить ресурс с отключенным CORS.