Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/466.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用jquery从其他网站获取指定文本?_Javascript_Jquery_Html_Ajax_Cross Domain - Fatal编程技术网

Javascript 如何使用jquery从其他网站获取指定文本?

Javascript 如何使用jquery从其他网站获取指定文本?,javascript,jquery,html,ajax,cross-domain,Javascript,Jquery,Html,Ajax,Cross Domain,我需要得到一个跨度内,在一个div,在一个div,等在另一个网站跨域文本发现 经过一个又一个小时的研究,我仍然无法找到任何工作。到目前为止,我所拥有的是: <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script> </head> <body> <div id="thisdiv"><

我需要得到一个跨度内,在一个div,在一个div,等在另一个网站跨域文本发现 经过一个又一个小时的研究,我仍然无法找到任何工作。到目前为止,我所拥有的是:

<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.0/jquery.min.js"></script>
</head>
<body>
    <div id="thisdiv"></div>
    <script>
        $.get( "http://landnstemacademy.blogspot.com/", function( data ) {
        $( "#Blog1" )
        $("span:contains('Quote of the day')")
            .contents()
                .filter(function(){
                    return this.nodeType !== 3;
                })
            .clone().prependTo( "#thisdiv" );
        }
    </script>
</body>
我对jquery非常陌生,所以如果我偏离了正轨,请原谅。非常感谢您的帮助。 还有,有没有办法在指定的元素之后指定一个元素?我需要在这个元素之后获取元素的内容,但它不是唯一的。 如果需要,该网站是
编辑:我相信我可能在某个地方读到过,某种涉及json的方法可以绕过这些反跨域规则。这里行吗?那能收到短信吗?我还想指出,如果可能的话,我希望将所有代码约束到一个文件中,而不是php的额外文件,但我理解这是否会因为任何原因而变得太困难/不可能。再次感谢。

由于跨源资源共享机制,您不允许从域访问网站内容

这种机制存在一些安全方面的原因来防止攻击,例如

如果您尝试运行您的请求,您将得到以下错误,因此您的问题首先不是jquery

无法加载XMLHttpRequest。不 “Access Control Allow Origin”标头出现在请求的服务器上 资源因此,不允许访问源“null”


然后,您可以访问此数据的唯一方法是,如果您试图从中获取数据的站点在使用访问控制“允许源站:*http标头”为您的请求提供响应时允许跨源站访问。

您可以使用类似以下内容:

Jquery:

$.ajax({
    url     : 'ajax/get_random_quotes.php',
    method  : 'get',
    success : function(response)
    {
        var data = JSON.parse(response);
        // You can use response like data.col1 or data.col2
    }
});
Php:get_random_quotes.Php


注意:由于跨源资源共享CORS机制,不允许您从域访问网站内容。因此,仅ajax还不足以完成任务,您必须使用CURL,如果域未设置允许跨源策略,则不能使用CURL。阅读更多您可以通过更改现有代码通过特殊的CORS代理发送请求,而不是像代码现在那样直接将请求发送到站点,从而绕过CORS限制。有一个相关的代码示例,使用$.get…at并查看更多详细信息。如果我要创建一个blogspot页面,因为我尝试访问的页面是blogspot页面,请将html代码添加到我的页面,然后在我的原始站点中创建blogspot页面的iframe?这属于同一范围dude,因为同样的原因,它也会阻止你。。。好的,在这一点上,我可能唯一能做的就是询问该站点的编辑,他们是否可以在blogspot站点中添加一个包含$.get代码的页面,然后在我的端创建一个iframe,对吗?这可能有效吗?我不想一直为你拖拖拉拉,但信不信由你,让它发挥作用将为我和其他许多人节省一年这么多的时间。检查网站所有者是否提供任何API,以便与网站应用程序通信并通过Web服务获取数据
$url = "http://quotes.stormconsultancy.co.uk/random.json";
$ch = curl_init( $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$response = curl_exec($ch);
curl_close($ch);
echo $response;
exit;