2012-07-25 119 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

相關問題