2015-06-17 50 views
5

指定URL的html內容我使用$ http.get(「URL」)來獲取存在於「網址」目前的內容。在「網址」的HTML是如下得到在AngularJS

<html> 
<head></head> 
<body> 
    <pre style = "word-wrap: break-word; white-space: pre-wrap;"> 
     <!-- content is present here --> 
    </pre> 
</body> 
</html> 

當我做一個$ http.get到這個網址,我得到的一些數據和所要求的內容

GET /TYPE=abvd HTTP 1.1 
content required 

.0.1234.123 Safari /123.12 
Referer: //url of the webpage calling this function 
Accept-Encoding: 
............... 

如何擺脫這種額外的信息,只接收內容? (我知道我們可以解析迴應,但有沒有更好的方法呢?)

編輯: 我得到的數據響應是在谷歌瀏覽器中看到的,當我在IE10中運行相同的腳本時,只需要「html內容」。爲什麼會出現這種差異,我如何製作它?

+2

那些響應頭將與所有的HTTP請求...你能修改你的服務器響應來改變它們......但它們是無害的,你真的不必擔心它們 –

+0

我可能無法修改服務器響應。 – clearScreen

回答

3

$http.get返回HttpPromise,並從中你可以得到的基礎數據,像這樣:

$http.get('url').then(function(response) { 
    html = response.data; 
}); 

爲了得到更有效的數據,可以擴大這個像這樣:

$http.get('url').then(
    // success handler 
    function(response) { 
     var data = response.data, 
      status = response.status, 
      header = response.header, 
      config = response.config; 
    }, 
    // error handler 
    function(response) { 
     var data = response.data, 
      status = response.status, 
      header = response.header, 
      config = response.config; 
    }); 

演示:JSBin

編輯:如果還有HTML的問題,你可以看看$sce.trustAsHtml(html)或PhantomJS與引用:

+0

當我打印到控制檯response.data,我得到 「未定義」 – clearScreen

+0

約'的console.log(response.status)如何;'? – Drakes

+0

演示用的console.log輸出到屏幕:http://jsbin.com/memeva/1/embed?js,console,output – Drakes