@dmitriu256

Как обойти cors ограничение ajax method POST?

Суть получить от стороннего API данные через POST запрос
Адрес api подставлен вымышленный
Доступа к серверу нет.

btn.addEventListener('click', function(){
 
    let xhr = new XMLHttpRequest();
    xhr.open('post', 'https://myapi.test.com');
    xhr.setRequestHeader('Content-type', 'application/json');
    xhr.send();
    xhr.addEventListener('readystatechange', function(){
       if(xhr.readyState == 4 && xhr.status == 200){
           let data = JSON.parse(xhr.response);
           console.log(data);
         //  alert(data.title);
           //alert(data.id);
       }
    });

});

В результате выполнения ошибки
script.js:11 POST https://myapi.../test 522
(anonymous) @ script.js:11
testajax/:1 Access to XMLHttpRequest at 'https://myapi.test.com' from origin 'testajax' has been blocked by CORS policy: No 'Access-Control-Allow-Origin' header is present on the requested resource.

Через Postman выводиться результат в виде JSON объекта
Postman - headers - Content-Type application/json
Авторизация - отсутствует
  • Вопрос задан
  • 6148 просмотров
Решения вопроса 1
@dmitriu256 Автор вопроса
Задание решено через создание собственного сервера на nodejs+express+бибилотека require
Код сервера
app.get('/primer', function(req,res){
    request.post({url:'https://mysite.com/test', form: {key:'value'}}, function(err,httpResponse,body){
        console.log(body);
        res.json(JSON.parse(body));
    });

});


Клиентская часть
let btn = document.getElementById('test');
let res = document.getElementById('res');

btn.addEventListener('click', function(){

    let xhr = new XMLHttpRequest();
    xhr.open('GET', 'http://localhost:3000/primer');
    xhr.send();

    xhr.addEventListener('readystatechange', function(){
        if(xhr.readyState == 4 && xhr.status == 200){
            let data = JSON.parse(xhr.response);
            console.log(data);
            res.innerHTML = data.token;
        }
    });
});

Может кому и пригодиться.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@nekarpeev
Web developer
https://developer.mozilla.org/ru/docs/Web/HTTP/COR...
ответы на все ваши вопросы
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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