2011-12-27 80 views
4

我使用JSONP與代碼:JSONP - 返回HTML

<script> 
$.ajax({ 
    url:"http://localhost:8080/pool/main/?pool=abcd", 
    dataType: 'JSONP', 
    success:function(response){ 
     $('#pool').append(response); 
    }, 
    error:function(){ 
     alert("ERROR"); 
     }, 
}); 
</script> 

我得用戶JSONP,becouse我需要AJAX跨域

在從 「http://localhost:8080/pool/main/?pool=abcd」 我的應用程序的響應是HTML碼。

我想在我的頁面中顯示此代碼,但出現錯誤,因爲我假設我無法返回HTML。

錯誤 - 我的意思是 - 它給我這個代碼error:function(){ alert("ERROR"); },但我在螢火蟲看到我的頁面http://localhost:8080/pool/main/?pool=abcd的迴應是好的。但是很快。我不知道如何把響應html元素。

我的問題是 - 我可以或我不能。

如果我可以 - 如何做到這一點?

+2

「an error」is * never * a good error description。請描述出了什麼問題,確切的錯誤信息是你得到的,等等。 – 2011-12-27 09:30:02

+0

如果是HTML,那麼它不是JSONP: - ? – 2011-12-27 09:34:46

回答

1

如果你想使用JSONP,你需要生成一段腳本調用一個返回數據的方法。如果你想得到一段HTML,你的網址應該輸出如下代碼:

callFunction("<div>abc</div>"); 
1

你可以在頁面上顯示響應HTML文本。您只需將響應值添加到任何HTML元素,如<div><span>

您也可以使用下面的代碼。

var URL = "http://localhost:8080/pool/main/?pool=abcd"; 
new Request({ 
    method: 'POST', 
    url: URL, 
    assign: 'true', 
    onComplete: function(responseText) { 
     $('#pool').innerHTML = responseText; 
    } 
}).send(); 

此處您的responseText將被設置爲#pool元素。

+1

但在這個例子中,它不是JSONP? – Ilkar 2011-12-27 09:40:51

0

是的。 JSONP是數據類型,其中響應作爲參數發送給函數。在該功能中可訪問的響應。

$.ajax({ 
    url:"http://localhost:8080/pool/main/?pool=abcd", 
    dataType: 'JSONP', 
    success:function(response){ 
    callFunction(response); 
    }, 
    error:function(){ 
     alert("ERROR"); 
     }, 
}); 

function callFunction(data){ 
$('#pool').innerHTML = data; 
} 
+1

如果我將使用'callFunction(response);'而不是'$('#pool')。innerHTML = data;'? – Ilkar 2011-12-27 09:42:31

+0

沒有意義添加另一個功能來實現相同的結果W/O它 – 2016-02-08 11:47:58