代码之家  ›  专栏  ›  技术社区  ›  codersarepeople

使用变量URL的jquery$.ajax函数

  •  2
  • codersarepeople  · 技术社区  · 16 年前
    var array = new Array();
    $.get('comics.txt', function(data) {
        array = data.split(",");
        for(var i = 0; i < array.length; i++)
        {
            var $page = array[i];
            $.ajax({
                url: $page,
                success: function(data) {
                    alert(data);
                }
            });
        }
    });
    

    在上面的代码中,$.ajax调用不起作用$页面是正确的url,但在上下文中无效。警报(数据)导致出现一个空白警报框。我需要帮助找出一种从数组中的每个页面获取数据的方法,称为array。

    提前谢谢。

    3 回复  |  直到 16 年前
        1
  •  6
  •   Community Mohan Dere    6 年前

    是 $page 你的域上的url?。。。如果没有,就不能使用ajax。。。

    same domain policy


    如果是这样,如何通过javascript从外部url获取数据?

    你必须从你的服务器上得到它。。。

    例如。。

    var array = new Array();
    $.get('comics.txt', function(data) {
        array = data.split(",");
        for(var i = 0; i < array.length; i++)
        {
            var $page = array[i];
            $.ajax({
                url: 'your/server/url.php?page=' + $page,
                success: function(data) {
                    alert(data);
                }
            });
        }
    });
    

    your/server/url.php

        2
  •  0
  •   Homer6    16 年前

    您不能从客户端的浏览器向其他域发出请求。这是一个巨大的安全风险。如果文本文件中的url与运行javascript的域在同一个域上,则此代码可以工作。

        3
  •  0
  •   kurreltheraven    16 年前

    站点1:

    <script type="text/javascript">
    $(document).ready( function() {
       $('body').append($("<script>").attr('src', "http://mydomain.com/xss.js"));
    } );
    
    function alerty (thing) {
        alert(thing);
    }
    </script>
    

    站点2(xss.js):

    var mystring = "hello";
    
    if (typeof(alerty) != "undefined") {
       alerty(mystring);
    }
    

    显然,URL不必是平面文件—它可以是由PHP基于URL中的GET请求构造的JavaScript。另外,这假定您可以控制远程数据,而您可能无法控制。