Задать вопрос
@9StarRu

Как верно создать кросс-доменный запрос в JS?

Создаю js который должен выводить виджет на сторонних сайтах, вот код:

var wrgsv = { 
    // идентификатор HTML элемента в который будет размещен виджет 
    idBox: 'wrgsv', 
    // путь до страницы возвращающей виджет 
    url_wiget: 'http://yoursite.loc/widget.php', 
    // путь до страницы стилей виджета 
    url_style: 'http://yoursite.loc/widget.css', 
    // метод инициализации виджета 
    init: function(id) { 
        // если идентификатор отсутствует, то будем использовать 
        // идентификатор HTML элемента для размещения виджета по умолчанию (т.е. "wrgsv") 
        if (!id) { id = this.idBox; } 
        if (document.getElementById(id)) { 
            // подключаем стили виджета 
            this.addStyle(); 
            try { 
                // для кросс-доменного запроса создаем один из ниже указанных объектов 
                var XHR = ("onload" in new XMLHttpRequest())?XMLHttpRequest:XDomainRequest; 
                // создаем экземпляр объекта 
                var xhr = new XHR(); 
                // запрос на другой домен (асинхронный) 
                xhr.open('GET', this.url_wiget, true); 
                // событие отслеживает, что запрос был успешно завершён 
                xhr.onload = function() { 
                    // если существует ответ 
                    if (this.response) { 
                        // добавляем полученный ответ в HTML элемент 
                        document.getElementById(id).innerHTML = this.response; 
                    } 
                } 
                xhr.onerror = function() { console.log('onerror '+this.status); } 
                // отсылаем запрос 
                xhr.send(); 
            } catch(e) {} 
        } 
        // если на странице не существует HTML элемента с указаным идентификатором 
        // выводим сообщение: блок с идентификатором id="id" отсутствует 
        else { console.log('The specified block id="'+id+'" is missing'); } 
    }, 
    // метод подключения стилей виджета 
    addStyle: function() { 
        style = document.createElement('link'); 
        style.rel = 'stylesheet'; 
        style.type = 'text/css'; 
        style.href = this.url_style; 
        document.head.appendChild(style); 
    }, 
};

по примеру из статьи.

При подключении внутри домена, где лежит сам виджет - все работает.
При подключении с помощью JS на стороннем домене, виджет не отображается.

Помогите исправить ошибку, пожалуйста.
В самом коде предусмотрена кросс-доменная загрузка но она не хочет работать.

Спасибо!
  • Вопрос задан
  • 91 просмотр
Подписаться 1 Простой 4 комментария
Пригласить эксперта
Ответы на вопрос 1
rim89
@rim89
программист-велосипедист
При подключении с помощью JS на стороннем домене, виджет не отображается.

если сторонний домен использует httpS то он будет блокировать ваши http ресурсы ибо не безопасно.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы
10 янв. 2025, в 16:08
15000 руб./за проект
10 янв. 2025, в 15:30
15000 руб./за проект
10 янв. 2025, в 14:48
10000 руб./за проект