【问题标题】:To read the source of a given url using jquery使用 jquery 读取给定 url 的来源
【发布时间】:2013-12-19 08:08:39
【问题描述】:

我有一个网站网址。我的任务是将整个页面的源代码读入一个变量。 我正在尝试这样做:

<script type="text/javascript">
    debugger;
    $(documnet).ready(function () {
        var timer =
            $.ajax({ type: 'post', url: 'http://WWW.google.com', data: { content: src } });
        });


    alert(timer);
</script>

目前这不起作用,它没有提取源代码。如果有任何错误或有任何其他解决方案可以完成此任务,请提供帮助。

【问题讨论】:

    标签: javascript jquery asp.net ajax visual-studio-2010


    【解决方案1】:

    使用 .ajax 方法,您无法真正从任意站点读取数据。在浏览器中运行 JavaScript 时,您会看到 same origin policy,它基本上表示您只能从托管页面的同一服务器读取数据。有很多方法可以使用 CORS 或 JSONP。 CORS 要求您将数据拉到您面前的服务器获得您的许可(谷歌不会发生这种情况)。 JSONP 还需要在服务器上进行配置,并且适用于通过 json 而不是作为网页返回的数据。

    真正做到这一点的唯一可靠方法是让您网站上的服务器端页面执行 http 请求。您使用 .ajax 调用服务器上的端点,获取网页服务器端并通过 ajax 调用返回。

    编辑:根据下面的评论,您希望在同一服务器上加载页面。我看了你的ajax代码,需要调整一下

    <script type="text/javascript">
    
    $(documnet).ready(function () {
        var request = $.ajax({ type: 'GET', url: 'file.html' });
    
        request.done(function(response){
               //response now has the webpage
             });
        });
    
    
    </script>
    

    这是一个工作示例:http://plnkr.co/edit/4h4l1dwPpQyYsOvJTfO1?p=preview

    【讨论】:

    • 网站托管在本地服务器上。所以认证问题不会出现。但问题仍然存在,我该如何获取变量的完整源代码。
    • 如果在同一个站点你只需要正常使用ajax调用即可。我更新了上面的答案以包含一个工作代码示例。
    猜你喜欢
    • 2011-10-31
    • 2022-01-18
    • 1970-01-01
    • 2012-05-22
    • 1970-01-01
    • 1970-01-01
    • 2011-04-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多