php file_get_contents на javascript

188
04 сентября 2017, 07:46

Можете предложить альтернативу функции PHP file_get_contents на javascript?

Answer 1

Можно использовать эту функцию

function httpGet(theUrl){
    var xmlHttp = new XMLHttpRequest();
    xmlHttp.open( "GET", theUrl, false );
    xmlHttp.send( null );
    return xmlHttp.responseText;
}
httpGet("some url");

Если сайт не разрешает читать, можно использовать cors proxy (например https://cors-anywhere.herokuapp.com/)

Answer 2
window.xhr = (url,callBack) => {
    let xhr = new XMLHttpRequest();
    xhr.open("GET", url);
    xhr.onreadystatechange = () => {
        if (xhr.readyState === 4) {
            if (xhr.status === 200) {
                callBack(xhr.responseText);
            }
        }
    };
    xhr.send();
}
xhr("http://site.domen/",(data) => {
});

Если запрос посылается на другой домен, к которому доступа нет (Access-Control-Allow-Origin), создайте php файл с содержимым

$ch = curl_init($_GET['url']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
echo curl_exec($ch);
curl_close($ch);

И запрашивайте данные с помощью него

xhr("get.php?url="+url,(data) => {
});

Так же для удобства можно просто дополнить строку в функции xhr и обращаться к ней без префикса get.php?url= в первом аргументе (как в первом примере)

xhr.open("GET", "get.php?url="+url);
READ ALSO
Сканирование php.ini

Сканирование php.ini

Скомпилировал php

187
Как сделать прием email на nginx

Как сделать прием email на nginx

В nginx есть директива mail{

167
Как выйти из php.exe в консоли

Как выйти из php.exe в консоли

Вопрос может показаться глупым, но я выполнил в командной строке команду

305