对于许多链接

时间:2015-06-08 12:04:46

标签: javascript xmlhttprequest

这是我的代码,

 var links = document.getElementsByTagName("a");
 for(var i = 0 , max = links.length ; i < max ; i++){
       var refLinks = links[i].href;
       var xhr = new XMLHttpRequest();
          xhr.open('GET',refLinks, true );
          xhr.onreadystatechange=function() {
                  console.log("HTTP Status Code:"+xhr.status);
             }
          xhr.send(null);
}

现在在控制台中我得到的xhr.status对于大多数链接都是0,而那些不是断开链接而200只是少数几个链接。我试过的网站是http://www.scientificamerican.com/

请帮助。

2 个答案:

答案 0 :(得分:0)

阅读浏览器的JavaScript控制台

您将看到以下信息:

  

XMLHttpRequest无法加载http://www.scientificamerican.com/。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上。起源&#39; http://null.jsbin.com&#39;因此不允许访问。   runner-3.27.4.min.js:1 HTTP状态代码:0

网站not allowed是为了吸引用户&#39;浏览器(使用用户的IP地址和cookie)从任意网站获取数据并使其可供JS使用。那将是一个可怕的安全问题。网站可以为其他网站提供explicit permission以使用JS访问其数据。

答案 1 :(得分:0)

  

XMLHttpRequest无法加载http://www.scientificamerican.com/。 No&#39; Access-Control-Allow-Origin&#39;标头出现在请求的资源上......

但他仍然存在一种绕过&#34;绕过&#34;带有简单PHP脚本的CORS。

这是HTML:

<?php
    // Simple use of file_get_contents function
    function loadHTML($url) {
        return file_get_contents($url);
    }

    // Test if we got parameters
    if(count($_GET) > 0) {

        // Test if url param
        if(isset($_GET['url']) && strlen($_GET['url']) > 0) {
            $html = loadHTML($_GET['url']);

            $param = parse_url($_GET['url']);

            $http_domain = "http://".$param['host'];

            $find = array(
                 'src="'
                ,'href="'
            );

            $replace = array(
                 'src="'.$http_domain
                ,'href="'.$http_domain
            );

            // Why use str_replace
            // Example : In $html, we got : <img src="/image/test.png" />
            //
            // We have to write the domain for using this image
            //
            // After : we got : <img src="http://example.com/image/test.png" />
            // We see the image
            //
            // It work for script, link, img, iframe, etc...
            echo str_replace($find, $replace, $html);
        }
    }
?>

这是PHP:

<!DOCTYPE html>
<html>
    <head>
        <link rel="stylesheet" href="path/to/your/file/styles.css">
    </head>
    <body>

        <h1>My First Heading</h1>

        <p>My first paragraph.</p>

    </body>
</html>

希望这会有所帮助,你可以将它用于你的。

抱歉我的英文