Установить таможенные заголовки HTTP-запросов для фреймов - PullRequest
1 голос
/ 19 января 2020

Я хочу установить 2 заголовка HTTP-запроса (X-Forwarded-For и User Agent) и отобразить веб-сайт, на который я отправляю заголовки custum с Iframes в HTML. Поэтому я начал писать Javascript, и все работает нормально. Он отправляет правильные заголовки на мой собственный веб-сайт, но не подключается к веб-сайтам, которые размещены не мной, и я получаю следующее сообщение об ошибке: «Доступ к XMLHttpRequest по адресу« https://google.com/ »от источника» http://myserver.com 'заблокировано политикой CORS: в запрошенном ресурсе отсутствует заголовок «Access-Control-Allow-Origin». " ,

Есть ли способ исправить это?

Спасибо за вашу помощь:)

Вот мой Java код:


var xmlHttp = createXmlHttpRequestObject();


function createXmlHttpRequestObject() {

    var xmlHttp;


    if(window.XMLHttpRequest){

        xmlHttp = new XMLHttpRequest();

    }

    else {

        xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");       

    }

    return xmlHttp;


}



function process() {

    if(xmlHttp){

        try {

            xmlHttp.open("GET", "https://google.com", true);
            xmlHttp.setRequestHeader("X-Forwarded-For", "1.2.3.4")
            xmlHttp.onreadystatechange = handleServerResponse;
            xmlHttp.send(null);




        }
        catch(e){
            alert(  e.toString()    );
        }

    }



}



function handleServerResponse() {


    theD = document.getElementById('theD');

    if(xmlHttp.readyState==1) {
        theD.innerHTML += "Status 1: server connection established <br/>";      
    }

    else if(xmlHttp.readyState==2){
    theD.innerHTML += "Status 2: request recived <br/>";        
    }

    else if(xmlHttp.readyState==3){
    theD.innerHTML += "Status 3: processing request <br/>";     
    }

    else if(xmlHttp.readyState==4){

        if(xmlHttp.status==200) {

                try {

                            texxt = xmlHttp.responseText;
                            theD.innerHTML += "Status 4: request is finsihed, response is ready <br/>";     
                            theD.innerHTML += texxt;



            }
                catch(e){
                    alert(  e.toString()    );
            }

    }

        }

        else {
            alert(  xmlHttp.statusText );

        }




    }

    ```



1 Ответ

1 голос
/ 19 января 2020

По умолчанию браузеры блокируют доступ с веб-страницы к веб-странице другого веб-сайта. Это можно разрешить с помощью настроек браузера. Другого пути для этого не существует. Однако некоторые данные могут быть размещены с помощью GET или POST на другом веб-сайте, например, в случае шлюза оплаты.

...