在使用jquery加载页面时将内容附加到div元素

时间:2012-07-25 13:30:24

标签: jquery html ajax get load

我想将html内容接收器从服务器(服务器2)追加到当前页面的主体(我从服务器1接收)。这是我想在加载页面时实现的(从服务器1接收)。(因此我从两个不同的服务器获取原始内容。)

我尝试使用

function Faulttest() {var myarray=new Array();
    var urlarray=new Array();
$(document).ready(function(){
    $.get({
     url:"http://csce.unl.edu:8080/Anomalies/index.jsp",
     data: "html",
     success:  function(result) {
     alert(result);
     $('#body').append(result) // result will be the contents received from the server
     },
     dataType:"text/html"
    });
});
// more contents   
}

页面的HTML内容为:

<body style="font-size:62.5%;" onload="Faulttest();" >
<div id="body" >
        <h1>content top </h1>
       //HTML CONTENTS GOES HERE
</div>

2 个答案:

答案 0 :(得分:2)

看起来您正在尝试从其他域加载页面。 Same Origin policy会给你带来麻烦。你不能这样做!

如果您尝试加载内容的文件位于同一个域中,则可以通过调用jQuery get方法轻松完成。

$(function(){
  $.get("somepageInyourdomain.html",function(data){
       $('#body').append(data);
  });
});

答案 1 :(得分:1)

我猜你在混淆$.get$.ajax,因为你正在使用$.ajax的语法,它应该是:

$(document).ready(function(){

    Faulttest();

    function Faulttest() {
        var myarray=new Array();
        var urlarray=new Array();

        $.ajax({
            url:"http://csce.unl.edu:8080/Anomalies/index.jsp",
            data: "html",
            dataType:"text/html",
            success:  function(result) {
                $('#body').append(result);
            }
        });
    }
});

另外diEcho是对的,通常你不能因为安全限制而做跨域ajax请求,但是有一些黑客攻击。 使用数据类型jsonp将允许您发出跨域请求,但当然服务应该在json中返回结果并支持回调等。

删除body标签上的onload函数,并运行document.ready语句中的函数以确保加载jQuery。