如何通过javascript和代理从任何网址简单地读取HTML?

时间:2016-01-22 07:17:27

标签: javascript php proxy

这是我的proxy.php文件:

$url = urldecode($_GET['url']);
$url = 'http://' . str_replace('http://', '', $url); // Avoid accessing the file system
echo file_get_contents($url); // You should probably use cURL. The concept is the same though

和我的reader.js

$(document).ready(function () {

    var url = 'http://localhost/taboo.blue-world.pl/admin/proxy.php?url=' + encodeURIComponent('http://www.blue-world.pl')

    $.ajax({
        url      : url,
        type     : 'GET',
        dataType : 'json'
    }).done(function(data) {
        console.log(data.results.result[1].category); // Do whatever you want here
    });
});

但它没有打印任何东西。你能帮我解决一下吗?我对此不太满意。

4 个答案:

答案 0 :(得分:1)

目前您正在尝试获取JSON响应。将dataType更改为html

dataType: 'html'

答案 1 :(得分:1)

看起来您正在尝试将HTML响应作为JSON。

如果内容是HTML,您应该将ajax调用转到:

$.ajax({
    url      : url,
    type     : 'GET',
    dataType : 'html'
}).done(function(data) {
    console.log(data); // data contains the html as a text
});

答案 2 :(得分:1)

在reader.js中使用dataType: 'html'(获取HTML数据)

OR

proxy.php中的

echo(json_encode(file_get_contents($url)));(对于JSON数据)

答案 3 :(得分:0)

尝试jQuery.parseJSON获取json格式

 $.ajax({
        url      : url,
        type     : 'GET',
        dataType : 'json'
    }).done(function(data) {
        var data = jQuery.parseJSON(data);
        console.log(data.results.result[1].category); // Do whatever you want here
    });
    });