2012-07-25 131 views
0

我想从服务器(服务器2)将html内容接收器追加到当前页面(我从服务器1接收的)的主体中。这是我想达到在加载页面(从服务器1接收)。(所以我从两个不同的服务器获取原始内容。)在使用jquery加载页面时将内容添加到div元素

我尝试使用

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> 
+1

这是跨域活动。使用'dataType:jsonp',获取更多信息[this](http://api.jquery.com/jQuery.ajax/) – diEcho 2012-07-25 13:32:18

+0

与你的问题并不真正相关(不是说你真的问过一个问题,你只是做了一个问题一系列的语句),但没有一个文档就绪函数_side_ onload函数。 – nnnnnn 2012-07-25 13:35:59

回答

2

它看起来像你试图从不同的域加载页面。 Same Origin policy会给你带来麻烦,你做不到!

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

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

“.load()”不覆盖元素的当前内容吗? OP需要追加... – nnnnnn 2012-07-25 13:48:50

+0

@nnnnnn:啊!没有注意到这一点。更正get方法。谢谢 – Shyju 2012-07-25 13:50:25

+0

@Shyju谢谢你的回答。我也在不同的域名之前完成了ajax调用,但大部分都是在某些事件上。在负载上调用不同的域名会产生影响。 – Judy 2012-07-25 14:01:36

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已加载。

+1

json的数据类型不允许跨域请求。 (并且将位于'Faulttest()'函数内部的文档移动到该函数中并没有帮助,因为该函数不再是全局的,因此不能再通过'onload ='属性进行访问。) – nnnnnn 2012-07-25 13:39:46

+0

@ nnnnnn - 你当然是对的,只有jsonp允许跨域请求,编辑它。 – adeneo 2012-07-25 13:43:58

相关问题